5 template < typename _Iterator > class __normal_iterator {
7 public:explicit __normal_iterator(const _Iterator & __i):_M_current(__i) {
9 const _Iterator & base() const {
13 template < typename _Iterator > inline int operator-(const __normal_iterator < _Iterator > &__lhs, const __normal_iterator < _Iterator > &__rhs) {
14 return __lhs.base() - __rhs.base();
16 template < typename _Tp > struct _Vector_base {
20 public: _Vector_impl _M_impl;
22 template < typename _Tp > class vector:protected _Vector_base < _Tp > {
23 public: unsigned int size() const {
24 return __normal_iterator < const _Tp *>(this->_M_impl.finish) - __normal_iterator < const _Tp *>(this->_M_impl.finish);
26 const _Tp & operator[] (unsigned int __n)const {
30 public:class iterator;
32 unsigned lineIndex(iterator const &) const;
37 Chunk const &chunk(Layout const *l) const {
40 vector < Character > _characters;
42 class Layout::iterator {
43 public:unsigned _char_index;
44 iterator(Layout const *p, unsigned c, int g):_char_index(c) {
47 inline Layout::iterator Layout::end() const {
48 return iterator(this, _characters.size(), _characters.size());
50 inline unsigned Layout::lineIndex(iterator const &it) const {
51 return it._char_index == _characters.size()? 1 : _characters[0].chunk(this).in_line;
53 void sp_te_adjust_linespacing_screen() {
57 unsigned line_count = layout->lineIndex(layout->end());
58 double average_line_height = by / line_count;
59 style->computed = (style->computed ? by : (average_line_height) / average_line_height);
60 style->value = (style->value ? by : (average_line_height) / average_line_height);