Initial import of the CDE 2.1.30 sources from the Open Group.
[oweals/cde.git] / cde / programs / dtmail / MotifApp / UndoCmd.C
1 /* $XConsortium: UndoCmd.C /main/3 1995/11/06 16:02:46 rswiston $ */
2 /*
3  *+SNOTICE
4  *
5  *      RESTRICTED CONFIDENTIAL INFORMATION:
6  *      
7  *      The information in this document is subject to special
8  *      restrictions in a confidential disclosure agreement bertween
9  *      HP, IBM, Sun, USL, SCO and Univel.  Do not distribute this
10  *      document outside HP, IBM, Sun, USL, SCO, or Univel wihtout
11  *      Sun's specific written approval.  This documment and all copies
12  *      and derivative works thereof must be returned or destroyed at
13  *      Sun's request.
14  *
15  *      Copyright 1993 Sun Microsystems, Inc.  All rights reserved.
16  *
17  *+ENOTICE
18  */
19 ///////////////////////////////////////////////////////////////////////////////
20 //////////////////////////////////////////////////////////////////////////////
21 //         This example code is from the book:
22 //
23 //           Object-Oriented Programming with C++ and OSF/Motif
24 //         by
25 //           Douglas Young
26 //           Prentice Hall, 1992
27 //           ISBN 0-13-630252-1 
28 //
29 //         Copyright 1991 by Prentice Hall
30 //         All Rights Reserved
31 //
32 //  Permission to use, copy, modify, and distribute this software for 
33 //  any purpose except publication and without fee is hereby granted, provided 
34 //  that the above copyright notice appear in all copies of the software.
35 ///////////////////////////////////////////////////////////////////////////////
36 //////////////////////////////////////////////////////////////////////////////
37
38
39 //////////////////////////////////////////////////////////
40 // UndoCmd.C: An interface to undoing the last command
41 //////////////////////////////////////////////////////////
42 #include "UndoCmd.h"
43
44 #define NULL  0
45
46 // Declare a global object: theUndoCmd
47
48 UndoCmd *theUndoCmd = new UndoCmd ( "Undo", "Undo" ); 
49
50 UndoCmd::UndoCmd ( char *name, char *label ) : NoUndoCmd ( name, label, 0 )
51 {
52     // Empty
53 }
54
55 void UndoCmd::doit()
56 {
57     // If there is a current command, undo it
58     
59     if ( _lastCmd != NULL )
60     {
61         // Undo the previous command
62         
63         _lastCmd->undo();
64         
65         _lastCmd = NULL; // Make sure we can't undo twice
66     }
67 }