X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9edb8fa062ae2c4394dab2753b49ee7cda26f191..a0219e4580a925de871080b703d14504c96ad3d6:/interface/wx/filehistory.h diff --git a/interface/wx/filehistory.h b/interface/wx/filehistory.h new file mode 100644 index 0000000000..855e8c9e67 --- /dev/null +++ b/interface/wx/filehistory.h @@ -0,0 +1,124 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: filehistory.h +// Purpose: wxFileHistory class +// Author: wxWidgets team +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +/** + @class wxFileHistory + + The wxFileHistory encapsulates a user interface convenience, the list of + most recently visited files as shown on a menu (usually the File menu). + + wxFileHistory can manage one or more file menus. More than one menu may be + required in an MDI application, where the file history should appear on + each MDI child menu as well as the MDI parent frame. + + @library{wxcore} + @category{docview} + + @see @ref overview_docview, wxDocManager +*/ +class wxFileHistory : public wxObject +{ +public: + /** + Constructor. Pass the maximum number of files that should be stored and + displayed. + + @a idBase defaults to wxID_FILE1 and represents the id given to the + first history menu item. Since menu items can't share the same ID you + should change @a idBase (to one of your own defined IDs) when using + more than one wxFileHistory in your application. + */ + wxFileHistory(size_t maxFiles = 9, wxWindowID idBase = wxID_FILE1); + + /** + Destructor. + */ + virtual ~wxFileHistory(); + + /** + Adds a file to the file history list, if the object has a pointer to an + appropriate file menu. + */ + virtual void AddFileToHistory(const wxString& filename); + + /** + Appends the files in the history list, to all menus managed by the file + history object. + */ + virtual void AddFilesToMenu(); + /** + Appends the files in the history list, to the given menu only. + */ + virtual void AddFilesToMenu(wxMenu* menu); + + /** + Returns the base identifier for the range used for appending items. + */ + wxWindowID GetBaseId() const; + + /** + Returns the number of files currently stored in the file history. + */ + virtual size_t GetCount() const; + + /** + Returns the file at this index (zero-based). + */ + virtual wxString GetHistoryFile(size_t index) const; + + /** + Returns the maximum number of files that can be stored. + */ + virtual int GetMaxFiles() const; + + /** + Returns the list of menus that are managed by this file history object. + + @see UseMenu() + */ + const wxList& GetMenus() const; + + /** + Loads the file history from the given config object. This function + should be called explicitly by the application. + + @see wxConfigBase + */ + virtual void Load(const wxConfigBase& config); + + /** + Removes the specified file from the history. + */ + virtual void RemoveFileFromHistory(size_t i); + + /** + Removes this menu from the list of those managed by this object. + */ + virtual void RemoveMenu(wxMenu* menu); + + /** + Saves the file history into the given config object. This must be + called explicitly by the application. + + @see wxConfigBase + */ + virtual void Save(wxConfigBase& config); + + /** + Sets the base identifier for the range used for appending items. + */ + void SetBaseId(wxWindowID baseId); + + /** + Adds this menu to the list of those menus that are managed by this file + history object. Also see AddFilesToMenu() for initializing the menu + with filenames that are already in the history when this function is + called, as this is not done automatically. + */ + virtual void UseMenu(wxMenu* menu); +};