28 #define OP_TAKE_FLAG_TOKEN ".flags."
29 #define OP_TAKE_CHANNEL_TOKEN ".chan"
31 #define OP_TAKE_TAKESET_CPIO_PACKET ".cwd"
41 bool auto_take=
false);
46 void clearTakeData(
int id,
const char *
label);
57 recurseStoreCurrent(root,
true);
61 static void clearActiveFlags(
OP_Node *root);
66 static bool autoActivationActive();
70 static bool needsParmAutoActivation(
PRM_Parm *parm);
74 static bool needsFlagAutoActivation(
OP_Node *node,
uchar flag);
79 static void getNodesAndTokens(
const TAKE_Take *take,
89 bool takeSet(
const char *
name);
90 bool takeMove(
const char *
name,
const char *newparent,
91 bool skip_current_restore =
false);
94 bool takeRemove(
const char *
name,
bool recursive);
95 bool takeRename(
const char *oldname,
const char *newname);
97 TAKE_Take *takeInsert(
const char *
name,
const char *parent=0);
99 int indent=0,
bool contents=
true,
101 bool takeCommands(
const char *takename, std::ostream &os);
102 bool takeCopy(
const char *takename, std::ostream &os,
bool recurse);
103 bool takePaste(
UT_IStream &is,
const char *parent=0,
106 void takeRestoreCurrent(
TAKE_Take *take);
110 void removeSpareParm(
OP_Node *node,
const char *parmname);
120 {
return myMergePrefix; }
122 { harden(myMergePrefix, s); }
127 {
return myMergeMasterTake; }
129 { harden(myMergeMasterTake, s); }
134 {
return myDelayTakeSwitch; }
136 { myDelayTakeSwitch = flag; }
140 {
return myDelayedTake; }
142 { harden(myDelayedTake, s); }
145 {
if (s) str.
harden(s);
else str = 0; }
150 bool myDelayTakeSwitch;
167 void networkLoadMerge(
OP_Take &
src,
const char *prefix,
168 MergeContext &context);
172 void setMergeContext(MergeContext *context);
180 void pushSyncContext();
181 void syncingNode(
OP_Node *node);
182 void popSyncContext();
187 void setHandleNodeDeletionDuringUndoFlag(
bool flag);
189 {
return myHandleNodeDeletionDuringUndoFlag; }
195 void setSyncUndo(OP_UndoSync *);
201 bool internalTakeSetForSync(
const char *
name);
206 void recurseStoreCurrent(
OP_Node *node,
bool partial_recurse);
208 bool *cleaned_dead_data_from_master_take = 0);
217 OP_UndoSync *mySyncUndo;
218 bool myHandleNodeDeletionDuringUndoFlag;
220 MergeContext *myMergeContext;
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei const GLchar * label
virtual void switchToTake(TAKE_Take *take, bool force_even_if_current=false)
void setMergeMasterTake(const char *s)
const UT_String & getDelayedTake() const
bool handlesNodeDeletionDuringUndo() const
const UT_String & getMergePrefix() const
bool getDelayTakeSwitch() const
OP_UndoSync * getSyncUndo() const
void storeCurrentTake(OP_Node *root, bool force_master=false)
virtual void notifyObservers(TAKE_Event::TAKE_EventType type, const char *name, const TAKE_Take *take=0)
void setDelayedTake(const char *s)
void harden()
Take shallow copy and make it deep.
GLuint const GLchar * name
virtual TAKE_Data * dataFactory(const char *oppath, const char *label)=0
SIM_API const UT_StringHolder force
void setDelayTakeSwitch(bool flag)
void setMergePrefix(const char *s)
const UT_String & getMergeMasterTake() const