5 template < typename _Iterator, typename _Container > class __normal_iterator {
7 public:explicit __normal_iterator(const _Iterator & __i):_M_current(__i)
10 const _Iterator & base() const {
13 template < typename _IteratorL, typename _IteratorR,
14 typename _Container > inline int operator-(const __normal_iterator <
15 _IteratorL, _Container > &__lhs,
16 const __normal_iterator <
17 _IteratorR, _Container > &__rhs)
19 return __lhs.base() - __rhs.base();
22 template < typename _Tp > class allocator {
24 template < typename _Tp, typename _Alloc > struct _Vector_base {
29 public: _Vector_impl _M_impl;
31 template < typename _Tp, typename _Alloc = allocator < _Tp > >class vector:protected _Vector_base < _Tp,
34 public:typedef __normal_iterator < const _Tp *,
36 unsigned int size() const {
37 return const_iterator(this->_M_impl._M_finish) -
38 const_iterator(this->_M_impl._M_start);
39 } const _Tp & operator[] (unsigned int __n)const {
42 public:class iterator;
44 unsigned lineIndex(iterator const &) const;
47 Chunk const &chunk(Layout const *l) const {
52 vector < Character > _characters;
54 class Layout::iterator {
55 public:unsigned _char_index;
56 iterator(Layout const *p, unsigned c, int g):_char_index(c) {
58 inline Layout::iterator Layout::end() const
60 return iterator(this, _characters.size(), _characters.size());
62 inline unsigned Layout::lineIndex(iterator const &it) const
64 return it._char_index ==
65 _characters.size()? 1 : _characters[0].chunk(this).in_line;
67 void sp_te_adjust_linespacing_screen(double by)
71 unsigned line_count = layout->lineIndex(layout->end());
72 double all_lines_height;
73 double average_line_height = all_lines_height / line_count;
77 style->computed = (average_line_height) / average_line_height;
81 style->value = (average_line_height) / average_line_height;