1 #ifndef BOOKMARKS_H
2 #define BOOKMARKS_H
3 
4 class FXAPI Bookmarks : public FXObject
5 {
6     FXDECLARE(Bookmarks)
7 protected:
8     FXString   group;           // MRU File group
9     FXObject*  target;          // Target object to send message
10     FXSelector message;         // Message to send
11     int        maxbookmarks;    // Maximum number of bookmarks to track
12 private:
13     Bookmarks(const Bookmarks&);
14     Bookmarks& operator=(const Bookmarks&);
15 
16 public:
17     long onCmdClear(FXObject*, FXSelector, void*);
18     long onCmdBookmark(FXObject*, FXSelector, void*);
19     long onUpdBookmark(FXObject*, FXSelector, void*);
20     long onUpdAnyBookmarks(FXObject*, FXSelector, void*);
21 public:
22     enum
23     {
24         ID_CLEAR,
25         ID_ANYBOOKMARKS,
26         ID_BOOKMARK_1,
27         ID_BOOKMARK_2,
28         ID_BOOKMARK_3,
29         ID_BOOKMARK_4,
30         ID_BOOKMARK_5,
31         ID_BOOKMARK_6,
32         ID_BOOKMARK_7,
33         ID_BOOKMARK_8,
34         ID_BOOKMARK_9,
35         ID_BOOKMARK_10,
36         ID_BOOKMARK_11,
37         ID_BOOKMARK_12,
38         ID_BOOKMARK_13,
39         ID_BOOKMARK_14,
40         ID_BOOKMARK_15,
41         ID_BOOKMARK_16,
42         ID_BOOKMARK_17,
43         ID_BOOKMARK_18,
44         ID_BOOKMARK_19,
45         ID_BOOKMARK_20
46     };
47 public:
48 
49     // Make new Bookmarks Group with default groupname
50     Bookmarks();
51 
52     // Make new Bookmarks Group with groupname gp
53     Bookmarks(const FXString& gp, FXObject* tgt = NULL, FXSelector sel = 0);
54 
55     // Change number of bookmarks we're tracking
setMaxBookmarks(int mx)56     void setMaxBookmarks(int mx)
57     {
58         maxbookmarks = mx;
59     }
60 
61     // Return the maximum number of bookmarks being tracked
getMaxBookmarks()62     int getMaxBookmarks() const
63     {
64         return(maxbookmarks);
65     }
66 
67     // Set group name
setGroupName(const FXString & name)68     void setGroupName(const FXString& name)
69     {
70         group = name;
71     }
72 
73     // Return group name
getGroupName()74     FXString getGroupName() const
75     {
76         return(group);
77     }
78 
79     // Change the target
setTarget(FXObject * t)80     void setTarget(FXObject* t)
81     {
82         target = t;
83     }
84 
85     // Get the target
getTarget()86     FXObject* getTarget() const
87     {
88         return(target);
89     }
90 
91     // Change the message
setSelector(FXSelector sel)92     void setSelector(FXSelector sel)
93     {
94         message = sel;
95     }
96 
97     // Return the message id
getSelector()98     FXSelector getSelector() const
99     {
100         return(message);
101     }
102 
103     // Obtain the bookmark name at index
104     FXString getBookmark(int index) const;
105 
106     // Change the bookmark name at index
107     void setBookmark(int index, const FXString& filename);
108 
109     // Append a bookmark
110     void appendBookmark(const FXString& filename);
111 
112     // Remove a bookmark
113     void removeBookmark(const FXString& filename);
114 
115     // Clear the list of bookmarks
116     void clear();
117 
118     // Destructor
119     virtual ~Bookmarks();
120 };
121 
122 
123 #endif
124