Trying to get the bullet re-org to work with Makefiles.
[blender-staging.git] / intern / action / intern / ACT_ActionC-Api.cpp
1 /**
2  * $Id$
3  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version. The Blender
9  * Foundation also sells licenses for use in proprietary software under
10  * the Blender License.  See http://www.blender.org/BL/ for information
11  * about this.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL/BL DUAL LICENSE BLOCK *****
30  */
31
32 /**
33
34  * $Id$
35  * Copyright (C) 2001 NaN Technologies B.V.
36  * @author      Maarten Gribnau
37  * @date        April, 25, 2001
38  */
39
40 #ifdef HAVE_CONFIG_H
41 #include <config.h>
42 #endif
43
44 #include "ACT_ActionC-Api.h"
45
46 #include "ACT_ActionStack.h"
47 #include "ACT_CallbackAction.h"
48
49
50 ACT_ActionPtr ACT_ActionCreate(
51         char* name,
52         int isApplied,
53         ACT_ActionUserDataPtr data,
54         ACT_ActionApplyProcPtr applyProc,
55         ACT_ActionUndoProcPtr undoProc,
56         ACT_ActionDisposeProcPtr disposeProc)
57 {
58         STR_String tmp (name);
59         ACT_CallbackAction* action = new ACT_CallbackAction(tmp, isApplied != 0, data, applyProc, undoProc, disposeProc);
60         return (ACT_ActionPtr) action;
61 }
62
63
64 char* ACT_ActionGetName(ACT_ActionPtr action)
65 {
66         return action ? ((ACT_Action*)action)->getName() : 0;
67 }
68
69
70 ACT_ActionStackPtr ACT_ActionStackCreate(unsigned int stackSize)
71 {
72         return ((ACT_ActionStackPtr) (new ACT_ActionStack (stackSize)));
73 }
74
75
76 void ACT_ActionStackDispose(ACT_ActionStackPtr stack)
77 {
78         if (stack) {
79                 delete (ACT_ActionStack*) stack;
80         }
81 }
82
83
84 unsigned int ACT_ActionStackGetStackDepth(ACT_ActionStackPtr stack)
85 {
86         return stack ? ((ACT_ActionStack*)stack)->getStackDepth() : 0;
87 }
88
89 unsigned int ACT_ActionStackGetMaxStackDepth(ACT_ActionStackPtr stack)
90 {
91         return stack ? ((ACT_ActionStack*)stack)->getMaxStackDepth() : 0;
92 }
93
94 void ACT_ActionStackSetMaxStackDepth(ACT_ActionStackPtr stack, unsigned int maxStackDepth)
95 {
96         if (stack) {
97                 ((ACT_ActionStack*)stack)->setMaxStackDepth(maxStackDepth);
98         }
99 }
100
101 void ACT_ActionStackPush(ACT_ActionStackPtr stack, ACT_ActionPtr action)
102 {
103         if (stack && action) {
104                 ((ACT_ActionStack*)stack)->push(*((ACT_Action*)action));
105         }
106 }
107
108
109 ACT_ActionStackPtr ACT_ActionStackPeekUndo(ACT_ActionStackPtr stack)
110 {
111         return (ACT_ActionStackPtr) (stack ? ((ACT_ActionStack*)stack)->peekUndo() : 0);
112 }
113
114
115 ACT_ActionStackPtr ACT_ActionStackPeekRedo(ACT_ActionStackPtr stack)
116 {
117         return (ACT_ActionStackPtr) (stack ? ((ACT_ActionStack*)stack)->peekRedo() : 0);
118 }
119
120
121 void ACT_ActionStackUndo(ACT_ActionStackPtr stack)
122 {
123         if (stack) {
124                 ((ACT_ActionStack*)stack)->undo();
125         }
126 }
127
128
129 void ACT_ActionStackRedo(ACT_ActionStackPtr stack)
130 {
131         if (stack) {
132                 ((ACT_ActionStack*)stack)->redo();
133         }
134 }