Changeset 6c9d74065d52c4d84d6feefb2cf82387956d527b
- Timestamp:
- 01/06/07 23:32:52 (6 years ago)
- Author:
- Philipp Kern <phil@…>
- Parents:
- a6a7a4b670967df95a82c0d1e7ba565ce99d114d
- Children:
- f49bdc2a81e372ad133581e2f56a92d47a1fe7ab
- git-committer:
- Philipp Kern <phil@0x539.de> / 2007-01-06T22:32:52Z+0000
- Message:
-
[project @ Gobby sends positions now in bytes and no longer in characters.]
libobby takes all positions in bytes to having not to care about different
encodings.
Original author: Armin Burgmeier <armin@…>
Date: 2005-05-05 14:00:18+00:00
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
rafb963a
|
r6c9d740
|
|
| 89 | 89 | |
| 90 | 90 | // Obby signal handlers |
| 91 | | doc.insert_event().connect( |
| | 91 | doc.insert_event().before().connect( |
| 92 | 92 | sigc::mem_fun(*this, &Document::on_obby_insert) ); |
| 93 | | doc.delete_event().connect( |
| | 93 | doc.delete_event().before().connect( |
| 94 | 94 | sigc::mem_fun(*this, &Document::on_obby_delete) ); |
| 95 | 95 | |
| … |
… |
|
| 122 | 122 | { |
| 123 | 123 | if(m_editing) return; |
| 124 | | m_doc.insert(begin.get_offset(), text); |
| | 124 | m_editing = true; |
| | 125 | |
| | 126 | m_doc.insert( |
| | 127 | m_doc.coord_to_position( |
| | 128 | begin.get_line(), |
| | 129 | begin.get_line_index() |
| | 130 | ), |
| | 131 | text |
| | 132 | ); |
| | 133 | |
| | 134 | m_editing = false; |
| 125 | 135 | } |
| 126 | 136 | |
| … |
… |
|
| 129 | 139 | { |
| 130 | 140 | if(m_editing) return; |
| 131 | | m_doc.erase(begin.get_offset(), end.get_offset() ); |
| | 141 | m_editing = true; |
| | 142 | |
| | 143 | m_doc.erase( |
| | 144 | m_doc.coord_to_position( |
| | 145 | begin.get_line(), |
| | 146 | begin.get_line_index() |
| | 147 | ), |
| | 148 | m_doc.coord_to_position( |
| | 149 | end.get_line(), |
| | 150 | end.get_line_index() |
| | 151 | ) |
| | 152 | ); |
| | 153 | |
| | 154 | m_editing = false; |
| 132 | 155 | } |
| 133 | 156 | |
| 134 | 157 | void Gobby::Document::on_obby_insert(const obby::insert_record& record) |
| 135 | 158 | { |
| 136 | | m_editing = true; |
| | 159 | if(m_editing) return; |
| | 160 | m_editing = true; |
| | 161 | |
| 137 | 162 | Glib::RefPtr<Gtk::TextBuffer> buffer = m_view.get_buffer(); |
| 138 | | buffer->insert(buffer->get_iter_at_offset(record.get_position()), |
| 139 | | record.get_text() ); |
| | 163 | |
| | 164 | unsigned int row, col; |
| | 165 | m_doc.position_to_coord(record.get_position(), row, col); |
| | 166 | buffer->insert( |
| | 167 | buffer->get_iter_at_line_index(row, col), |
| | 168 | record.get_text() |
| | 169 | ); |
| | 170 | |
| 140 | 171 | m_editing = false; |
| 141 | 172 | } |
| … |
… |
|
| 143 | 174 | void Gobby::Document::on_obby_delete(const obby::delete_record& record) |
| 144 | 175 | { |
| 145 | | m_editing = true; |
| | 176 | if(m_editing) return; |
| | 177 | m_editing = true; |
| | 178 | |
| 146 | 179 | Glib::RefPtr<Gtk::TextBuffer> buffer = m_view.get_buffer(); |
| 147 | | buffer->erase(buffer->get_iter_at_offset(record.get_begin()), |
| 148 | | buffer->get_iter_at_offset(record.get_end()) ); |
| | 180 | |
| | 181 | unsigned int brow, bcol, erow, ecol; |
| | 182 | m_doc.position_to_coord(record.get_begin(), brow, bcol); |
| | 183 | m_doc.position_to_coord(record.get_end(), erow, ecol); |
| | 184 | |
| | 185 | buffer->erase( |
| | 186 | buffer->get_iter_at_line_index(brow, bcol), |
| | 187 | buffer->get_iter_at_line_index(erow, ecol) |
| | 188 | ); |
| 149 | 189 | m_editing = false; |
| 150 | 190 | } |