| # kdeui Library API Documentation
Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Namespaces | Source Files

# kcommand.h

    00001 /* This file is part of the KDE project
    00002    Copyright (C) 2000 Werner Trobin <trobin@kde.org>
    00003    Copyright (C) 2000 David Faure <faure@kde.org>
    00004
    00005    This library is free software; you can redistribute it and/or
    00006    modify it under the terms of the GNU Library General Public
    00007    License as published by the Free Software Foundation; either
    00008    version 2 of the License, or (at your option) any later version.
    00009
    00010    This library is distributed in the hope that it will be useful,
    00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
    00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    00013    Library General Public License for more details.
    00014
    00015    You should have received a copy of the GNU Library General Public License
    00016    along with this library; see the file COPYING.LIB.  If not, write to
    00017    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    00018    Boston, MA 02111-1307, USA.
    00019 */
    00020
    00021 #ifndef kcommand_h
    00022 #define kcommand_h
    00023
    00024 #include <qptrlist.h>
    00025 #include <qstring.h>
    00026 #include <qobject.h>
    00027 #include <kdelibs_export.h>
    00028
    00029 class KAction;
    00030 class KActionCollection;
    00031 class QPopupMenu;
    00032
    00037 class KDEUI_EXPORT KCommand
    00038 {
    00039 protected:
    00043     KCommand() {}
    00044
    00045 public:
    00046     virtual ~KCommand();
    00047
    00053     virtual void execute() = 0;
    00062     virtual void unexecute() = 0;
    00063
    00068     virtual QString name() const = 0;
    00069 protected:
    00070     virtual void virtual_hook( int id, void* data );
    00071 };
    00072
    00078 class KDEUI_EXPORT KNamedCommand : public KCommand
    00079 {
    00080 protected:
    00086     KNamedCommand(const QString &name) : KCommand(), m_name(name) {}
    00087
    00088 public:
    00092     virtual QString name() const { return m_name; }
    00097     void setName(const QString &name) { m_name=name; }
    00098
    00099 private:
    00100     QString m_name;
    00101 protected:
    00102     virtual void virtual_hook( int id, void* data );
    00103 };
    00104
    00110 class KDEUI_EXPORT KMacroCommand : public KNamedCommand
    00111 {
    00112 public:
    00119     KMacroCommand( const QString & name );
    00120     virtual ~KMacroCommand() {}
    00121
    00126     void addCommand(KCommand *command);
    00127
    00132     virtual void execute();
    00137     virtual void unexecute();
    00138
    00139 protected:
    00140     QPtrList<KCommand> m_commands;
    00141 protected:
    00142     virtual void virtual_hook( int id, void* data );
    00143 };
    00144
    00145
    00156 class KDEUI_EXPORT KCommandHistory : public QObject {
    00157     Q_OBJECT
    00158 public:
    00164     KCommandHistory();
    00165
    00174     KCommandHistory(KActionCollection *actionCollection, bool withMenus = true);
    00175
    00179     virtual ~KCommandHistory();
    00180
    00186     void clear();
    00187
    00195     void addCommand(KCommand *command, bool execute=true);
    00196
    00200     int undoLimit() const { return m_undoLimit; }
    00204     void setUndoLimit(int limit);
    00208     int redoLimit() const { return m_redoLimit; }
    00212     void setRedoLimit(int limit);
    00213
    00220     void updateActions();
    00221
    00222 public slots:
    00227     virtual void undo();
    00232     virtual void redo();
    00241     virtual void documentSaved();
    00242
    00243 protected slots:
    00244     void slotUndoAboutToShow();
    00245     void slotUndoActivated( int );
    00246     void slotRedoAboutToShow();
    00247     void slotRedoActivated( int );
    00248
    00249 signals:
    00255     void commandExecuted();
    00260     void documentRestored();
    00261
    00262 private:
    00263     void clipCommands();  // ensures that the limits are kept
    00264
    00265     QPtrList<KCommand> m_commands;
    00266     KAction *m_undo, *m_redo;
    00267     QPopupMenu *m_undoPopup, *m_redoPopup;
    00268     int m_undoLimit, m_redoLimit;
    00269     bool m_first;  // attention: it's the first command in the list!
    00270 protected:
    00271     virtual void virtual_hook( int id, void* data );
    00272 private:
    00273     class KCommandHistoryPrivate;
    00274     KCommandHistoryPrivate *d;
    00275 };
    00276
    00277 #endif

This file is part of the documentation for kdeui Library Version 3.4.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sat Jun 11 20:20:14 2005 by doxygen 1.4.1 written by Dimitri van Heesch, © 1997-2003