summaryrefslogtreecommitdiff
path: root/ccss-cairo/ccss-cairo-style.h
blob: 1336704a6fcd7cbe77e97c051518b34e90d01ed5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* vim: set ts=8 sw=8 noexpandtab: */

/* The Cairo CSS Drawing Library.
 * Copyright (C) 2008 Robert Staudinger
 *
 * This  library is free  software; you can  redistribute it and/or
 * modify it  under  the terms  of the  GNU Lesser  General  Public
 * License  as published  by the Free  Software  Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License  along  with  this library;  if not,  write to  the Free
 * Software Foundation, Inc., 51  Franklin St, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 */

#ifndef CCSS_CAIRO_STYLE_H
#define CCSS_CAIRO_STYLE_H

#ifndef CCSS_CAIRO_H
  #ifndef CCSS_CAIRO_BUILD
    #error "Only <ccss-cairo/ccss-cairo.h> can be included directly."
  #endif
#endif

#include <cairo.h>
#include <ccss/ccss.h>

CCSS_BEGIN_DECLS

/**
 * ccss_cairo_gap_side_t:
 * @CCSS_CAIRO_GAP_SIDE_LEFT:	gap on the left.
 * @CCSS_CAIRO_GAP_SIDE_RIGHT:	gap on the right.
 * @CCSS_CAIRO_GAP_SIDE_TOP:	gap on top.
 * @CCSS_CAIRO_GAP_SIDE_BOTTOM:	gap on the bottom.
 *
 * This enum mirrors #GtkPositionType.
 **/
typedef enum {
	CCSS_CAIRO_GAP_SIDE_LEFT,
	CCSS_CAIRO_GAP_SIDE_RIGHT,
	CCSS_CAIRO_GAP_SIDE_TOP,
	CCSS_CAIRO_GAP_SIDE_BOTTOM
} ccss_cairo_gap_side_t;

void
ccss_cairo_style_draw_line (ccss_style_t const	*self,
			    cairo_t		*cr, 
			    int			 x1,
			    int			 x2,
			    int			 y1,
			    int			 y2);

void
ccss_cairo_style_draw_outline (ccss_style_t const	*self,
			       cairo_t			*cr, 
			       int			 x,
			       int			 y,
			       int			 width,
			       int			 height);

void
ccss_cairo_style_draw_rectangle (ccss_style_t const	*self,
				 cairo_t		*cr, 
				 int			 x,
				 int			 y,
				 int			 width,
				 int			 height);

void
ccss_cairo_style_draw_rectangle_with_gap (ccss_style_t const		*self,
					  cairo_t			*cr, 
					  int				 x,
					  int				 y,
					  int				 width,
					  int				 height, 
					  ccss_cairo_gap_side_t		 gap_side,
					  int				 gap_start,
					  int				 gap_width);

bool
ccss_cairo_style_get_double (ccss_style_t const	*self,
			     char const		*property_name,
			     double		*value);

bool 
ccss_cairo_style_get_string (ccss_style_t const	 *self,
			     char const		 *property_name,
			     char		**value);

bool
ccss_cairo_style_get_property (ccss_style_t const		 *self,
			       char const			 *property_name,
			       ccss_property_base_t const	**property);

CCSS_END_DECLS

#endif /* CCSS_CAIRO_STYLE_H */