/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* * Pix * * Copyright (C) 2010 Free Software Foundation, Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef GTH_CONTACT_SHEET_THEME_H #define GTH_CONTACT_SHEET_THEME_H #include #include #include #include typedef enum { GTH_CONTACT_SHEET_BACKGROUND_TYPE_SOLID, GTH_CONTACT_SHEET_BACKGROUND_TYPE_VERTICAL, GTH_CONTACT_SHEET_BACKGROUND_TYPE_HORIZONTAL, GTH_CONTACT_SHEET_BACKGROUND_TYPE_FULL } GthContactSheetBackgroundType; typedef enum { GTH_CONTACT_SHEET_FRAME_STYLE_NONE, GTH_CONTACT_SHEET_FRAME_STYLE_SIMPLE, GTH_CONTACT_SHEET_FRAME_STYLE_SIMPLE_WITH_SHADOW, GTH_CONTACT_SHEET_FRAME_STYLE_SHADOW, GTH_CONTACT_SHEET_FRAME_STYLE_SLIDE, GTH_CONTACT_SHEET_FRAME_STYLE_SHADOW_IN, GTH_CONTACT_SHEET_FRAME_STYLE_SHADOW_OUT } GthContactSheetFrameStyle; typedef struct { int ref; GFile *file; char *display_name; GthContactSheetBackgroundType background_type; GdkRGBA background_color1; GdkRGBA background_color2; GdkRGBA background_color3; GdkRGBA background_color4; GthContactSheetFrameStyle frame_style; GdkRGBA frame_color; int frame_hpadding; int frame_vpadding; int frame_border; char *header_font_name; GdkRGBA header_color; char *footer_font_name; GdkRGBA footer_color; char *caption_font_name; GdkRGBA caption_color; int caption_spacing; int row_spacing; int col_spacing; gboolean editable; } GthContactSheetTheme; GthContactSheetTheme * gth_contact_sheet_theme_new (void); GthContactSheetTheme * gth_contact_sheet_theme_new_from_key_file (GKeyFile *key_file); GthContactSheetTheme * gth_contact_sheet_theme_dup (GthContactSheetTheme *theme); gboolean gth_contact_sheet_theme_to_data (GthContactSheetTheme *theme, void **buffer, gsize *count, GError **error); GthContactSheetTheme * gth_contact_sheet_theme_ref (GthContactSheetTheme *theme); void gth_contact_sheet_theme_unref (GthContactSheetTheme *theme); void gth_contact_sheet_theme_paint_background (GthContactSheetTheme *theme, cairo_t *cr, int width, int height); void gth_contact_sheet_theme_paint_frame (GthContactSheetTheme *theme, cairo_t *cr, cairo_rectangle_int_t *frame_rect, cairo_rectangle_int_t *image_rect); void gth_contact_sheet_theme_paint_preview (GthContactSheetTheme *theme, cairo_t *cr, int width, int height); GdkPixbuf * gth_contact_sheet_theme_create_preview (GthContactSheetTheme *theme, int preview_size); GList * gth_contact_sheet_theme_list_copy (GList *list); void gth_contact_sheet_theme_list_free (GList *list); #endif /* GTH_CONTACT_SHEET_THEME_H */