// Modified by:
// Created: 05.11.00
// RCS-ID: $Id$
-// Copyright: (c) wxWindows team
+// Copyright: (c) wxWidgets team
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma implementation "cmdproc.h"
#endif
#endif // wxUSE_MENUS
m_undoAccelerator = wxT("\tCtrl+Z");
m_redoAccelerator = wxT("\tCtrl+Y");
+#if !wxUSE_STL
+ m_currentCommand = NULL;
+#endif
}
wxCommandProcessor::~wxCommandProcessor()
// Pass a command to the processor. The processor calls Do();
// if successful, is appended to the command history unless
-// storeIt is FALSE.
+// storeIt is false.
bool wxCommandProcessor::Submit(wxCommand *command, bool storeIt)
{
- wxCHECK_MSG( command, FALSE, _T("no command in wxCommandProcessor::Submit") );
+ wxCHECK_MSG( command, false, _T("no command in wxCommandProcessor::Submit") );
if ( !DoCommand(*command) )
{
// the user code expects the command to be deleted anyhow
delete command;
- return FALSE;
+ return false;
}
if ( storeIt )
Store(command);
+ else
+ delete command;
- return TRUE;
+ return true;
}
void wxCommandProcessor::Store(wxCommand *command)
{
m_currentCommand = m_currentCommand->GetPrevious();
SetMenuStrings();
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
bool wxCommandProcessor::Redo()
{
wxCommand *redoCommand = (wxCommand *) NULL;
- wxList::compatibility_iterator redoNode = 0;
+ wxList::compatibility_iterator redoNode
+#if !wxUSE_STL
+ = NULL // just to avoid warnings
+#endif // !wxUSE_STL
+ ;
if ( m_currentCommand )
{
{
m_currentCommand = redoNode;
SetMenuStrings();
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
bool wxCommandProcessor::CanUndo() const
bool wxCommandProcessor::CanRedo() const
{
if (m_currentCommand && !m_currentCommand->GetNext())
- return FALSE;
+ return false;
if (m_currentCommand && m_currentCommand->GetNext())
- return TRUE;
+ return true;
if (!m_currentCommand && (m_commands.GetCount() > 0))
- return TRUE;
+ return true;
- return FALSE;
+ return false;
}
void wxCommandProcessor::Initialize()
{
wxString undoLabel = GetUndoMenuLabel();
wxString redoLabel = GetRedoMenuLabel();
-
+
m_commandEditMenu->SetLabel(wxID_UNDO, undoLabel);
m_commandEditMenu->Enable(wxID_UNDO, CanUndo());
{
buf = _("&Undo") + m_undoAccelerator;
}
-
+
return buf;
}