Bookmarks.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //---------------------------------------------------------------------------
  2. #ifndef BookmarksH
  3. #define BookmarksH
  4. //---------------------------------------------------------------------------
  5. class THierarchicalStorage;
  6. class TBookmarkList;
  7. //---------------------------------------------------------------------------
  8. class TBookmarks : public TObject
  9. {
  10. public:
  11. __fastcall TBookmarks();
  12. virtual __fastcall ~TBookmarks();
  13. void __fastcall Load(THierarchicalStorage * Storage);
  14. void __fastcall Save(THierarchicalStorage * Storage, bool All);
  15. void __fastcall ModifyAll(bool Modify);
  16. void __fastcall Clear();
  17. __property TBookmarkList * Bookmarks[AnsiString Index] = { read = GetBookmarks, write = SetBookmarks };
  18. private:
  19. TStringList * FBookmarkLists;
  20. static AnsiString Keys[];
  21. TBookmarkList * __fastcall GetBookmarks(AnsiString Index);
  22. void __fastcall SetBookmarks(AnsiString Index, TBookmarkList * value);
  23. void __fastcall LoadLevel(THierarchicalStorage * Storage, const AnsiString Key,
  24. bool Local, TBookmarkList * BookmarkList);
  25. };
  26. //---------------------------------------------------------------------------
  27. class TBookmarkList : public TPersistent
  28. {
  29. friend class TBookmarks;
  30. friend class TBookmark;
  31. public:
  32. __fastcall TBookmarkList();
  33. virtual __fastcall ~TBookmarkList();
  34. void __fastcall Clear();
  35. void __fastcall Add(TBookmark * Bookmark);
  36. void __fastcall Insert(int Index, TBookmark * Bookmark);
  37. void __fastcall InsertBefore(TBookmark * BeforeBookmark, TBookmark * Bookmark);
  38. void __fastcall MoveTo(TBookmark * ToBookmark, TBookmark * Bookmark, bool Before);
  39. void __fastcall Delete(TBookmark * Bookmark);
  40. TBookmark * __fastcall FindByName(const AnsiString Node, const AnsiString Name);
  41. virtual void __fastcall Assign(TPersistent * Source);
  42. void __fastcall LoadOptions(THierarchicalStorage * Storage);
  43. void __fastcall SaveOptions(THierarchicalStorage * Storage);
  44. __property int Count = { read = GetCount };
  45. __property TBookmark * Bookmarks[int Index] = { read = GetBookmarks };
  46. __property bool NodeOpened[AnsiString Index] = { read = GetNodeOpened, write = SetNodeOpened };
  47. protected:
  48. int __fastcall IndexOf(TBookmark * Bookmark);
  49. void __fastcall KeyChanged(int Index);
  50. __property bool Modified = { read = FModified, write = FModified };
  51. private:
  52. TStringList * FBookmarks;
  53. TStringList * FOpenedNodes;
  54. bool FModified;
  55. int __fastcall GetCount();
  56. TBookmark * __fastcall GetBookmarks(int Index);
  57. bool __fastcall GetNodeOpened(AnsiString Index);
  58. void __fastcall SetNodeOpened(AnsiString Index, bool value);
  59. };
  60. //---------------------------------------------------------------------------
  61. class TBookmark : public TPersistent
  62. {
  63. friend class TBookmarkList;
  64. public:
  65. __fastcall TBookmark();
  66. virtual void __fastcall Assign(TPersistent * Source);
  67. __property AnsiString Name = { read = FName, write = SetName };
  68. __property AnsiString Local = { read = FLocal, write = SetLocal };
  69. __property AnsiString Remote = { read = FRemote, write = SetRemote };
  70. __property AnsiString Node = { read = FNode, write = SetNode };
  71. protected:
  72. TBookmarkList * FOwner;
  73. static AnsiString __fastcall BookmarkKey(const AnsiString Node, const AnsiString Name);
  74. __property AnsiString Key = { read = GetKey };
  75. private:
  76. AnsiString FName;
  77. AnsiString FLocal;
  78. AnsiString FRemote;
  79. AnsiString FNode;
  80. void __fastcall SetName(const AnsiString value);
  81. void __fastcall SetLocal(const AnsiString value);
  82. void __fastcall SetRemote(const AnsiString value);
  83. void __fastcall SetNode(const AnsiString value);
  84. AnsiString __fastcall GetKey();
  85. void __fastcall Modify(int OldIndex);
  86. };
  87. //---------------------------------------------------------------------------
  88. #endif