5 template < typename _Iterator > class __normal_iterator {
7 public:explicit __normal_iterator(const _Iterator & __i):_M_current(__i)
10 const _Iterator & base() const {
14 template < typename _Iterator > inline int operator-(const __normal_iterator <
16 const __normal_iterator <
19 return __lhs.base() - __rhs.base();
21 template < typename _Tp > struct _Vector_base {
25 public: _Vector_impl _M_impl;
27 template < typename _Tp > class vector:protected _Vector_base < _Tp > {
28 public:unsigned int size() const {
29 return __normal_iterator <
30 const _Tp *>(this->_M_impl.finish) - __normal_iterator <
31 const _Tp *>(this->_M_impl.finish);
32 } const _Tp & operator[] (unsigned int __n)const {
35 public:class iterator;
37 unsigned lineIndex(iterator const &) const;
42 Chunk const &chunk(Layout const *l) const {
44 vector < Character > _characters;
46 class Layout::iterator {
47 public:unsigned _char_index;
48 iterator(Layout const *p, unsigned c, int g):_char_index(c) {
51 inline Layout::iterator Layout::end() const
53 return iterator(this, _characters.size(), _characters.size());
55 inline unsigned Layout::lineIndex(iterator const &it) const
57 return it._char_index ==
58 _characters.size()? 1 : _characters[0].chunk(this).in_line;
61 void sp_te_adjust_linespacing_screen()
66 unsigned line_count = layout->lineIndex(layout->end());
67 double average_line_height = by / line_count;
69 (style->computed ? by : (average_line_height) /
72 (style->value ? by : (average_line_height) / average_line_height);