X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpage-marker.cc;h=1e393862e6b861b1a859602aee3b5a80e54ac927;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=dd43c35640d23585a38b9394fba61d6a9520c0dc;hpb=5bb1618e65e0b8031b9aed8d5f218986e3d3c5a0;p=lilypond.git diff --git a/lily/page-marker.cc b/lily/page-marker.cc index dd43c35640..1e393862e6 100644 --- a/lily/page-marker.cc +++ b/lily/page-marker.cc @@ -1,18 +1,38 @@ /* - page-marker.cc -- implement Page_marker + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2007--2015 Nicolas Sceaux - (c) 2007 Nicolas Sceaux + LilyPond 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 3 of the License, or + (at your option) any later version. + + LilyPond 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 LilyPond. If not, see . */ #include "page-marker.hh" -#include "ly-smobs.icc" -Page_marker::Page_marker (SCM symbol, SCM permission) +Page_marker::Page_marker () { - symbol_ = symbol; - permission_ = permission; + symbol_ = SCM_EOL; + permission_ = SCM_EOL; + label_ = SCM_EOL; + smobify_self (); +} + +Page_marker::Page_marker (Page_marker const &src) + : Smob () +{ + symbol_ = src.symbol_; + permission_ = src.permission_; + label_ = src.label_; smobify_self (); } @@ -20,28 +40,17 @@ Page_marker::~Page_marker () { } -IMPLEMENT_SMOBS (Page_marker); -IMPLEMENT_DEFAULT_EQUAL_P (Page_marker); -IMPLEMENT_TYPE_P (Page_marker, "ly:page-marker?"); +const char Page_marker::type_p_name_[] = "ly:page-marker?"; SCM -Page_marker::mark_smob (SCM smob) +Page_marker::mark_smob () { - Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob); - scm_gc_mark (pm->symbol_); - scm_gc_mark (pm->permission_); + scm_gc_mark (symbol_); + scm_gc_mark (permission_); + scm_gc_mark (label_); return SCM_EOL; } -int -Page_marker::print_smob (SCM smob, SCM port, scm_print_state*) -{ - Page_marker *pm = (Page_marker *) SCM_CELL_WORD_1 (smob); - (void)pm; - scm_puts ("#", port); - return 1; -} - SCM Page_marker::permission_symbol () { @@ -53,3 +62,22 @@ Page_marker::permission_value () { return permission_; } + +SCM +Page_marker::label () +{ + return label_; +} + +void +Page_marker::set_permission (SCM symbol, SCM permission) +{ + symbol_ = symbol; + permission_ = permission; +} + +void +Page_marker::set_label (SCM label) +{ + label_ = label; +}