Changed file format to include dependency table.
[ttodo.git] / tddoc.h
blob03143ee6cf73725783ca5da99cf738b63ed5888b
1 // Copyright (c) 2006 by Mike Sharov <msharov@users.sourceforge.net>
2 //
3 // tddoc.h
4 //
6 #ifndef TDDOC_H_31474BC008E2711A4DD60C960CFF3439
7 #define TDDOC_H_31474BC008E2711A4DD60C960CFF3439
9 #include "tde.h"
10 #include "ui/doc.h"
12 /// \class CTodoDocument tddoc.h tddoc.h
13 class CTodoDocument : public CDocument {
14 public:
15 typedef const todolist_t& rctodolist_t;
16 typedef const CTodoEntry& rcentry_t;
17 typedef CTodoEntry::id_t itemid_t;
18 public:
19 CTodoDocument (void);
20 virtual void read (istream& is);
21 virtual void write (ostream& os) const;
22 virtual size_t stream_size (void) const;
23 void LoadData (void);
24 void SaveData (void) const;
25 void UpdateCurrentEntry (rcentry_t e);
26 rcentry_t CurrentEntry (void) const;
27 void SetList (itemid_t lid);
28 inline uoff_t Selection (void) const { return (m_Selection); }
29 inline size_t ListSize (void) const { return (m_Todos.size()); }
30 inline rctodolist_t List (void) const { return (m_Todos); }
31 inline void SetSelection (uoff_t v) { m_Selection = v; UpdateAllViews(); }
32 void RemoveCurrentEntry (void);
33 void AppendEntry (void);
34 void MarkEntryComplete (void);
35 private:
36 typedef multimap<itemid_t, itemid_t> depmap_t;
37 private:
38 todolist_t m_Todos; ///< List of entries.
39 depmap_t m_Deps; ///< List of dependencies between todos.
40 uoff_t m_Selection; ///< Index of the selected entry.
41 uint32_t m_ItemId; ///< Currently selected list's parent item.
44 #endif