#ifndef _WX_CMDPROC_H_
#define _WX_CMDPROC_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "cmdproc.h"
#endif
#include "wx/object.h"
#include "wx/list.h"
+class WXDLLEXPORT wxMenu;
+
// ----------------------------------------------------------------------------
// wxCommand: a single command capable of performing itself
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxCommand : public wxObject
{
public:
- wxCommand(bool canUndoIt = FALSE, const wxString& name = "");
+ wxCommand(bool canUndoIt = FALSE, const wxString& name = wxEmptyString);
~wxCommand();
// Override this to perform a command
virtual bool CanUndo() const;
virtual bool CanRedo() const;
+ // Initialises the current command and menu strings.
virtual void Initialize();
+
+ // Sets the Undo/Redo menu strings for the current menu.
virtual void SetMenuStrings();
+ // Gets the current Undo menu label.
+ wxString GetUndoMenuLabel() const;
+
+ // Gets the current Undo menu label.
+ wxString GetRedoMenuLabel() const;
+
#if wxUSE_MENUS
// Call this to manage an edit menu.
void SetEditMenu(wxMenu *menu) { m_commandEditMenu = menu; }
wxList& GetCommands() const { return (wxList&) m_commands; }
wxCommand *GetCurrentCommand() const
{
- return (wxCommand *)(m_currentCommand ? m_currentCommand->Data() : NULL);
+ return (wxCommand *)(m_currentCommand ? m_currentCommand->GetData() : NULL);
}
int GetMaxCommands() const { return m_maxNoCommands; }
virtual void ClearCommands();
+ // By default, the accelerators are "\tCtrl+Z" and "\tCtrl+Y"
+ const wxString& GetUndoAccelerator() const { return m_undoAccelerator; }
+ const wxString& GetRedoAccelerator() const { return m_redoAccelerator; }
+
+ void SetUndoAccelerator(const wxString& accel) { m_undoAccelerator = accel; }
+ void SetRedoAccelerator(const wxString& accel) { m_redoAccelerator = accel; }
+
protected:
// for further flexibility, command processor doesn't call wxCommand::Do()
// and Undo() directly but uses these functions which can be overridden in
wxMenu* m_commandEditMenu;
#endif // wxUSE_MENUS
+ wxString m_undoAccelerator;
+ wxString m_redoAccelerator;
+
private:
DECLARE_DYNAMIC_CLASS(wxCommandProcessor)
+ DECLARE_NO_COPY_CLASS(wxCommandProcessor)
};
#endif // _WX_CMDPROC_H_