+++ /dev/null
-CODING STANDARDS:
-
-Functions and methods do not return errorcodes, but use assert for
-checking status.
-
-INDENTATION, in emacs:
-
-
-(add-hook 'c-mode-hook
- '(lambda ()(setq c-basic-offset 4)))
-
-
-(add-hook 'c++-mode-hook
- '(lambda() (c-set-style "Stroustrup")
- )
- )
-
-
-CLASSES and TYPES:
-
- This_is_a_class
-
-DATA MEMBERS
-
- Class:member
-
-if the member's name resembles its type, then we use
-
- Class Fubular { ..}
-
- Class::fubular_
-
-COMMENTS
-
-/// short description
-class Class {
- ///
- Data data_member_;
- /**
- ..
- */
-
- /****************/
-
- /// short memo
- member();
- /**
- long doco of member()
- */
-};
-/**
- Class documentation.
-*/
-
-Unfortunately most of the code isn't really documented that good.
\ No newline at end of file
HOW DOES IT WORK
-Use The Source, Luke. If you don't know C++, you can try editing
+* Use The Source, Luke. If you don't know C++, you can try editing
.dstreamrc for copious debugging output.
+
+* see also the subdir Documentation
+
+* The source is commented in the DOC++ style.
+Check out doc++ at
+
+ http://www.ZIB-Berlin.DE/VisPar/doc++/doc++.html
+++ /dev/null
- * clefs
-
- * beam
-
- * fonttables -> fontdims
-
- * clear IDENTIFIERs
-
- * Paperdef -> fontsize .
-
- * merge Paper, Lookup, Outputfile, and Symtable.
-
- * all places in the code marked TODO! and ugh/ARGH
#include "glob.hh"
#include "boxes.hh"
#include "string.hh"
-#include "tex.hh"
-
/// a horizontally fixed size element of the score
struct Item {
*/
/****************/
+
+ /// do calculations after determining horizontal spacing
+ virtual void postprocess();
+ /// do calculations before determining horizontal spacing
+ virtual void preprocess();
+ /**
+ This is executed directly after the item is added to the
+ PScore
+ */
+
virtual Interval width() const;
virtual Interval height() const;
String TeXstring () const ;
void print()const;
virtual ~Item();
};
-/** An item must be part of a Column
+/** Item is the datastructure for printables whose width is known
+ before the spacing is calculated
+
+ NB. This doesn't mean an Item has to initialize the output field before
+ spacing calculation.
+
*/
--- /dev/null
+/*
+ notehead.hh -- part of LilyPond
+
+ (c) 1996 Han-Wen Nienhuys
+*/
+
+#ifndef NOTEHEAD_HH
+#define NOTEHEAD_HH
+#include "item.hh"
+
+/// ball at the end of the stem
+struct Notehead : public Item
+{
+ int position;
+ int staff_size;
+ int dots;
+ int balltype;
+
+ /****************/
+ void preprocess();
+
+ Notehead(int staff_size);
+ /**
+ position of top line (5 linestaff: 8)
+ */
+ void print()const;
+private:
+ void brew_molecole();
+};
+/**
+ takes care of:
+
+ * help lines
+ * proper placing of dots
+
+ */
+#endif // NOTEHEAD_HH
+
#define STEM_HH
#include "item.hh"
+/// the rule attached to the ball
struct Stem : public Item {
// heads the stem encompasses (positions)
int minnote, maxnote;
// flagtype? 4 none, 8 8th flag, 0 = beam.
int flag;
-
/****************/
- void brew_molecole();
- void calculate();
+
+ void postprocess();
Stem(int center);
void print() const;
- Interval width() const;
+ Interval width() const;
+private:
+ void calculate();
+ void brew_molecole();
};
+/**
+ takes care of:
+
+ \begin{itemize}
+ \item the rule
+ \item the flag
+ \item up/down position.
+ \end{itemize}
+ */
+
#endif
#include "string.hh"
#include "boxes.hh"
+/// parameter substitution in TeXstrings
String
substitute_args(String source, svec<String> args);
/**