22
33#include < odr/file.hpp>
44#include < odr/style.hpp>
5+ #include < odr/table_dimension.hpp>
6+ #include < odr/table_position.hpp>
57
68#include < odr/internal/abstract/document_element.hpp>
79
@@ -10,13 +12,13 @@ namespace odr {
1012Element::Element () = default ;
1113
1214Element::Element (const internal::abstract::ElementAdapter *adapter,
13- const ExtendedElementIdentifier identifier)
15+ const ElementIdentifier identifier)
1416 : m_adapter{adapter}, m_identifier{identifier} {}
1517
1618Element::operator bool () const { return exists_ (); }
1719
1820bool Element::exists_ () const {
19- return m_adapter != nullptr && ! m_identifier. is_null () ;
21+ return m_adapter != nullptr && m_identifier != null_element_id ;
2022}
2123
2224ElementType Element::type () const {
@@ -66,6 +68,10 @@ Page Element::as_page() const {
6668 return {m_adapter, m_identifier, m_adapter->page_adapter (m_identifier)};
6769}
6870
71+ SheetCell Element::as_sheet_cell () const {
72+ return {m_adapter, m_identifier, m_adapter->sheet_cell_adapter (m_identifier)};
73+ }
74+
6975MasterPage Element::as_master_page () const {
7076 return {m_adapter, m_identifier,
7177 m_adapter->master_page_adapter (m_identifier)};
@@ -152,7 +158,7 @@ ElementIterator::ElementIterator() = default;
152158
153159ElementIterator::ElementIterator (
154160 const internal::abstract::ElementAdapter *adapter,
155- const ExtendedElementIdentifier identifier)
161+ const ElementIdentifier identifier)
156162 : m_adapter{adapter}, m_identifier{identifier} {}
157163
158164ElementIterator::reference ElementIterator::operator *() const {
@@ -174,7 +180,7 @@ ElementIterator ElementIterator::operator++(int) {
174180}
175181
176182bool ElementIterator::exists_ () const {
177- return m_adapter != nullptr && ! m_identifier. is_null () ;
183+ return m_adapter != nullptr && m_identifier != null_element_id ;
178184}
179185
180186ElementRange::ElementRange () = default ;
@@ -198,7 +204,7 @@ MasterPage TextRoot::first_master_page() const {
198204 if (!exists_ ()) {
199205 return {};
200206 }
201- const ExtendedElementIdentifier master_page_id =
207+ const ElementIdentifier master_page_id =
202208 m_adapter2->text_root_first_master_page (m_identifier);
203209 return {m_adapter, master_page_id,
204210 m_adapter->master_page_adapter (master_page_id)};
@@ -216,7 +222,7 @@ MasterPage Slide::master_page() const {
216222 if (!exists_ ()) {
217223 return {};
218224 }
219- const ExtendedElementIdentifier master_page_id =
225+ const ElementIdentifier master_page_id =
220226 m_adapter2->slide_master_page (m_identifier);
221227 return {m_adapter, master_page_id,
222228 m_adapter->master_page_adapter (master_page_id)};
@@ -237,30 +243,12 @@ Sheet::content(const std::optional<TableDimensions> range) const {
237243 : TableDimensions ();
238244}
239245
240- SheetColumn Sheet::column (const std::uint32_t column) const {
241- if (!exists_ ()) {
242- return {};
243- }
244- const ExtendedElementIdentifier column_id =
245- m_adapter2->sheet_column (m_identifier, column);
246- return {m_adapter, column_id, m_adapter->sheet_column_adapter (column_id)};
247- }
248-
249- SheetRow Sheet::row (const std::uint32_t row) const {
250- if (!exists_ ()) {
251- return {};
252- }
253- const ExtendedElementIdentifier row_id =
254- m_adapter2->sheet_row (m_identifier, row);
255- return {m_adapter, row_id, m_adapter->sheet_row_adapter (row_id)};
256- }
257-
258246SheetCell Sheet::cell (const std::uint32_t column,
259247 const std::uint32_t row) const {
260248 if (!exists_ ()) {
261249 return {};
262250 }
263- const ExtendedElementIdentifier cell_id =
251+ const ElementIdentifier cell_id =
264252 m_adapter2->sheet_cell (m_identifier, column, row);
265253 return {m_adapter, cell_id, m_adapter->sheet_cell_adapter (cell_id)};
266254}
@@ -269,27 +257,28 @@ ElementRange Sheet::shapes() const {
269257 if (!exists_ ()) {
270258 return {};
271259 }
272- const ExtendedElementIdentifier first_shape_id =
260+ const ElementIdentifier first_shape_id =
273261 m_adapter2->sheet_first_shape (m_identifier);
274262 return ElementRange (ElementIterator (m_adapter, first_shape_id));
275263}
276264
277- TableColumnStyle SheetColumn::style () const {
278- return exists_ () ? m_adapter2->sheet_column_style (m_identifier)
279- : TableColumnStyle ();
265+ TableStyle Sheet::style () const {
266+ return exists_ () ? m_adapter2->sheet_style (m_identifier) : TableStyle ();
280267}
281268
282- TableRowStyle SheetRow::style ( ) const {
283- return exists_ () ? m_adapter2->sheet_row_style (m_identifier)
284- : TableRowStyle ();
269+ TableColumnStyle Sheet::column_style ( const std:: uint32_t column ) const {
270+ return exists_ () ? m_adapter2->sheet_column_style (m_identifier, column )
271+ : TableColumnStyle ();
285272}
286273
287- std::uint32_t SheetCell::column () const {
288- return exists_ () ? m_adapter2->sheet_cell_column (m_identifier) : 0 ;
274+ TableRowStyle Sheet::row_style (const std::uint32_t row) const {
275+ return exists_ () ? m_adapter2->sheet_row_style (m_identifier, row)
276+ : TableRowStyle ();
289277}
290278
291- std::uint32_t SheetCell::row () const {
292- return exists_ () ? m_adapter2->sheet_cell_row (m_identifier) : 0 ;
279+ TablePosition SheetCell::position () const {
280+ return exists_ () ? m_adapter2->sheet_cell_position (m_identifier)
281+ : TablePosition (0 , 0 );
293282}
294283
295284bool SheetCell::is_covered () const {
@@ -323,7 +312,7 @@ MasterPage Page::master_page() const {
323312 if (!exists_ ()) {
324313 return {};
325314 }
326- const ExtendedElementIdentifier master_page_id =
315+ const ElementIdentifier master_page_id =
327316 m_adapter2->page_master_page (m_identifier);
328317 return {m_adapter, master_page_id,
329318 m_adapter->master_page_adapter (master_page_id)};
@@ -383,16 +372,15 @@ TableRow Table::first_row() const {
383372 if (!exists_ ()) {
384373 return {};
385374 }
386- const ExtendedElementIdentifier row_id =
387- m_adapter2->table_first_row (m_identifier);
375+ const ElementIdentifier row_id = m_adapter2->table_first_row (m_identifier);
388376 return {m_adapter, row_id, m_adapter->table_row_adapter (row_id)};
389377}
390378
391379TableColumn Table::first_column () const {
392380 if (!exists_ ()) {
393381 return {};
394382 }
395- const ExtendedElementIdentifier column_id =
383+ const ElementIdentifier column_id =
396384 m_adapter2->table_first_column (m_identifier);
397385 return {m_adapter, column_id, m_adapter->table_column_adapter (column_id)};
398386}
0 commit comments