]> git.donarmstrong.com Git - lilypond.git/blob - lily/page-marker.cc
11b19999a1597ac79189a23d8f94f948625b172e
[lilypond.git] / lily / page-marker.cc
1 /*
2   page-marker.cc -- implement Page_marker
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 2007 Nicolas Sceaux <nicolas.sceaux@free.fr>
7 */
8
9 #include "page-marker.hh"
10 #include "ly-smobs.icc"
11
12 Page_marker::Page_marker ()
13 {
14   symbol_ = SCM_EOL;
15   permission_ = SCM_EOL;
16   label_ = SCM_EOL;
17   smobify_self ();
18 }
19
20 Page_marker::~Page_marker ()
21 {
22 }
23
24 IMPLEMENT_SMOBS (Page_marker);
25 IMPLEMENT_DEFAULT_EQUAL_P (Page_marker);
26 IMPLEMENT_TYPE_P (Page_marker, "ly:page-marker?");
27
28 SCM
29 Page_marker::mark_smob (SCM smob)
30 {
31   Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob);
32   scm_gc_mark (pm->symbol_);
33   scm_gc_mark (pm->permission_);
34   scm_gc_mark (pm->label_);
35   return SCM_EOL;
36 }
37
38 int
39 Page_marker::print_smob (SCM smob, SCM port, scm_print_state*)
40 {
41   Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob);
42   (void)pm;
43   scm_puts ("#<Page_marker>", port);
44   return 1;
45 }
46
47 SCM
48 Page_marker::permission_symbol ()
49 {
50   return symbol_;
51 }
52
53 SCM
54 Page_marker::permission_value ()
55 {
56   return permission_;
57 }
58
59 SCM
60 Page_marker::label ()
61 {
62   return label_;
63 }
64
65 void
66 Page_marker::set_permission (SCM symbol, SCM permission)
67 {
68   symbol_ = symbol;
69   permission_ = permission;
70 }
71
72 void
73 Page_marker::set_label (SCM label)
74 {
75   label_ = label;
76 }
77
78