version 1.219, 2008/11/13 08:54:54
|
version 1.220, 2008/11/13 11:30:37
|
Line 834 static char* QueryStringFromMenu (Docume
|
Line 834 static char* QueryStringFromMenu (Docume
|
TtaWaitShowProcDialogue (); |
TtaWaitShowProcDialogue (); |
TtaDestroyDialogue (BaseDialog + OptionMenu); |
TtaDestroyDialogue (BaseDialog + OptionMenu); |
|
|
if (ReturnOption!=-1) |
if (ReturnOption != -1) |
{ |
result = TtaStrdup(itemlist[ReturnOption].label); |
result = TtaStrdup(itemlist[ReturnOption].label); |
|
} |
|
|
|
TtaFreeMemory (itemlist); |
TtaFreeMemory (itemlist); |
return result; |
return result; |
Line 856 char *Template_GetListTypes (XTigerTempl
|
Line 854 char *Template_GetListTypes (XTigerTempl
|
|
|
types = GetAttributeStringValueFromNum (el, Template_ATTR_types, NULL); |
types = GetAttributeStringValueFromNum (el, Template_ATTR_types, NULL); |
if (types) |
if (types) |
listtypes = Template_ExpandTypes (t, types, el, FALSE); |
{ |
|
listtypes = Template_ExpandTypes (t, types, el, FALSE); |
|
TtaFreeMemory (types); |
|
} |
return listtypes; |
return listtypes; |
#endif /* TEMPLATES */ |
#endif /* TEMPLATES */ |
} |
} |
Line 1340 void Template_FillFromDocument (Document
|
Line 1341 void Template_FillFromDocument (Document
|
#endif |
#endif |
SetTemplateDocument (t, doc); |
SetTemplateDocument (t, doc); |
Template_PrepareTemplate(t, doc); |
Template_PrepareTemplate(t, doc); |
if (IsTemplateInstanceDocument(doc)) |
if (IsTemplateInstanceDocument (doc)) |
{ |
{ |
#ifdef AMAYA_DEBUG |
#ifdef AMAYA_DEBUG |
printf(" > instance\n"); |
printf(" > instance\n"); |
Line 2327 Element Template_CreateRepeatFromSelecti
|
Line 2328 Element Template_CreateRepeatFromSelecti
|
#ifdef TEMPLATES |
#ifdef TEMPLATES |
ThotBool oldStructureChecking; |
ThotBool oldStructureChecking; |
DisplayMode dispMode; |
DisplayMode dispMode; |
Element selElem, selElem2, parent, parent2; |
Element selElem, selElem2, parent, parent2, rep = NULL, use; |
ElementType selType, selType2; |
ElementType selType, selType2, repType; |
int firstChar, lastChar, firstChar2, lastChar2; |
int firstChar, lastChar, firstChar2, lastChar2; |
SSchema sstempl = TtaGetSSchema ("Template", doc); |
SSchema sstempl = TtaGetSSchema ("Template", doc); |
const char *title = TtaGetMessage (AMAYA, AM_TEMPLATE_REPEATCOMP); |
const char *title, *label; |
const char *label = TtaGetMessage (AMAYA, AM_TEMPLATE_REPEATLABEL); |
char buffer[128], *types; |
char buffer[128]; |
|
|
|
ElementType repType; |
|
Element rep, use; |
|
|
|
if (!TtaGetDocumentAccessMode(doc)) |
if (!TtaGetDocumentAccessMode(doc)) |
return NULL; |
return NULL; |
Line 2345 Element Template_CreateRepeatFromSelecti
|
Line 2342 Element Template_CreateRepeatFromSelecti
|
IsTemplateDocument(doc) && !IsTemplateInstanceDocument(doc)) |
IsTemplateDocument(doc) && !IsTemplateInstanceDocument(doc)) |
{ |
{ |
TtaGiveFirstSelectedElement(doc, &selElem, &firstChar, &lastChar); |
TtaGiveFirstSelectedElement(doc, &selElem, &firstChar, &lastChar); |
|
selType = TtaGetElementType(selElem); |
TtaGiveLastSelectedElement(doc, &selElem2, &firstChar2, &lastChar2); |
TtaGiveLastSelectedElement(doc, &selElem2, &firstChar2, &lastChar2); |
|
selType2 = TtaGetElementType(selElem2); |
if (selElem && selElem2) |
repType.ElSSchema = sstempl; |
|
repType.ElTypeNum = Template_EL_repeat; |
|
parent = TtaGetParent(selElem); |
|
parent2 = TtaGetParent(selElem2); |
|
if (selElem && selElem2 && firstChar == 0 && firstChar2 == 0 && |
|
parent == parent2) |
{ |
{ |
// request the element label |
oldStructureChecking = TtaGetStructureChecking (doc); |
QueryStringFromUser(label, title, buffer, 127); |
if (selElem == selElem2 && selType.ElSSchema == sstempl && |
if (buffer[0] == EOS) |
(selType.ElTypeNum == Template_EL_useEl || |
return NULL; |
selType.ElTypeNum == Template_EL_useSimple)) |
|
use = selElem; |
selType = TtaGetElementType(selElem); |
else |
selType2 = TtaGetElementType(selElem2); |
// create first the use element |
repType.ElSSchema = sstempl; |
use = Template_CreateUseFromSelection (doc, view, createComp); |
repType.ElTypeNum = Template_EL_repeat; |
if (use) |
parent = TtaGetParent(selElem); |
{ |
parent2 = TtaGetParent(selElem2); |
// avoid to repeat a use string |
if (firstChar==0 && firstChar2==0 && parent == parent2 && buffer[0]!=0) |
types = GetAttributeStringValueFromNum (use, Template_ATTR_types, NULL); |
{ |
if (types && strcmp (types, "string")) |
dispMode = TtaGetDisplayMode (doc); |
|
if (dispMode == DisplayImmediately) |
|
TtaSetDisplayMode (doc, DeferredDisplay); |
|
oldStructureChecking = TtaGetStructureChecking (doc); |
|
TtaSetStructureChecking (FALSE, doc); |
|
|
|
if (selElem==selElem2 && selType.ElSSchema==sstempl && |
|
(selType.ElTypeNum==Template_EL_useEl || |
|
selType.ElTypeNum==Template_EL_useSimple)) |
|
use = selElem; |
|
else |
|
use = Template_CreateUseFromSelection (doc, view, createComp); |
|
if (use) |
|
{ |
{ |
TtaExtendUndoSequence(doc); |
TtaFreeMemory (types); |
|
// request the element label |
|
title = TtaGetMessage (AMAYA, AM_TEMPLATE_REPEATCOMP); |
|
label = TtaGetMessage (AMAYA, AM_TEMPLATE_REPEATLABEL); |
|
QueryStringFromUser(label, title, buffer, 127); |
|
if (buffer[0] == EOS) |
|
return NULL; |
|
if (use == selElem) |
|
TtaOpenUndoSequence (doc, NULL, NULL, 0, 0); |
|
else |
|
TtaExtendUndoSequence(doc); |
|
dispMode = TtaGetDisplayMode (doc); |
|
if (dispMode == DisplayImmediately) |
|
TtaSetDisplayMode (doc, DeferredDisplay); |
|
TtaSetStructureChecking (FALSE, doc); |
|
// create the repeat element |
rep = TtaNewElement(doc, repType); |
rep = TtaNewElement(doc, repType); |
|
|
TtaInsertSibling(rep, use, FALSE, doc); |
TtaInsertSibling(rep, use, FALSE, doc); |
SetAttributeStringValue(rep, Template_ATTR_title, buffer); |
SetAttributeStringValue (rep, Template_ATTR_title, buffer); |
TtaRegisterElementCreate(rep, doc); |
TtaRegisterElementCreate (rep, doc); |
|
// move the use element |
TtaRegisterElementDelete (use, doc); |
TtaRegisterElementDelete (use, doc); |
TtaRemoveTree(use, doc); |
TtaRemoveTree(use, doc); |
|
TtaInsertFirstChild (&use, rep, doc); |
TtaInsertFirstChild(&use, rep, doc); |
TtaRegisterElementCreate (use, doc); |
TtaRegisterElementCreate(use, doc); |
TtaSetDisplayMode (doc, dispMode); |
|
TtaSelectElement (doc, use); |
TtaSelectElement(doc, use); |
TtaCloseUndoSequence (doc); |
TtaCloseUndoSequence(doc); |
TtaSetStructureChecking (oldStructureChecking, doc); |
|
// register document modification |
|
TtaSetDocumentModified (doc); |
} |
} |
|
|
TtaSetStructureChecking (oldStructureChecking, doc); |
|
TtaSetDisplayMode (doc, dispMode); |
|
return rep; |
|
} |
} |
|
return rep; |
|
} |
|
else |
|
{ |
|
TtaDisplaySimpleMessage (CONFIRM, AMAYA, AM_INVALID_SELECTION); |
|
return NULL; |
} |
} |
} |
} |
#endif /* TEMPLATES */ |
#endif /* TEMPLATES */ |
Line 2706 Element Template_CreateUseFromSelection
|
Line 2713 Element Template_CreateUseFromSelection
|
title = TtaGetMessage (AMAYA, AM_TEMPLATE_USELABEL); |
title = TtaGetMessage (AMAYA, AM_TEMPLATE_USELABEL); |
label = TtaGetMessage (AMAYA, AM_NAME); |
label = TtaGetMessage (AMAYA, AM_NAME); |
QueryStringFromUser (label, title, buffer, 127); |
QueryStringFromUser (label, title, buffer, 127); |
|
if (buffer[0] != EOS) |
{ |
{ |
// Create a xt:use around the selection |
// Create a xt:use around the selection |
useType.ElSSchema = sstempl; |
useType.ElSSchema = sstempl; |
Line 2748 Element Template_CreateUseFromSelection
|
Line 2756 Element Template_CreateUseFromSelection
|
SetAttributeStringValue (use, Template_ATTR_types, "string"); |
SetAttributeStringValue (use, Template_ATTR_types, "string"); |
SetAttributeStringValue (use, Template_ATTR_currentType, "string"); |
SetAttributeStringValue (use, Template_ATTR_currentType, "string"); |
} |
} |
if (buffer[0] != EOS) |
SetAttributeStringValue (use, Template_ATTR_title, buffer); |
SetAttributeStringValue (use, Template_ATTR_title, buffer); |
|
TtaRegisterElementCreate (use, doc); |
TtaRegisterElementCreate (use, doc); |
TtaSelectElement (doc, use); |
TtaSelectElement (doc, use); |
// register document modification |
// register document modification |
Line 2820 Element Template_CreateComponentFromSele
|
Line 2827 Element Template_CreateComponentFromSele
|
if (head && firstChar == 0 && firstChar2 == 0 && parent == parent2) |
if (head && firstChar == 0 && firstChar2 == 0 && parent == parent2) |
{ |
{ |
dispMode = TtaGetDisplayMode (doc); |
dispMode = TtaGetDisplayMode (doc); |
if (dispMode == DisplayImmediately) |
|
TtaSetDisplayMode (doc, DeferredDisplay); |
|
oldStructureChecking = TtaGetStructureChecking (doc); |
oldStructureChecking = TtaGetStructureChecking (doc); |
TtaSetStructureChecking (FALSE, doc); |
TtaSetStructureChecking (FALSE, doc); |
child = TtaGetLastChild(head); |
child = TtaGetLastChild(head); |
Line 2833 Element Template_CreateComponentFromSele
|
Line 2838 Element Template_CreateComponentFromSele
|
TtaOpenUndoSequence (doc, NULL, NULL, 0, 0); |
TtaOpenUndoSequence (doc, NULL, NULL, 0, 0); |
} |
} |
|
|
|
if (dispMode == DisplayImmediately) |
|
TtaSetDisplayMode (doc, DeferredDisplay); |
// Create the component |
// Create the component |
comp = TtaNewElement(doc, compType); |
comp = TtaNewElement(doc, compType); |
if (child) |
if (child) |
Line 2882 ThotBool TemplateComponentWillBeDeleted
|
Line 2889 ThotBool TemplateComponentWillBeDeleted
|
{ |
{ |
#ifdef TEMPLATES |
#ifdef TEMPLATES |
XTigerTemplate t = GetXTigerDocTemplate(event->document); |
XTigerTemplate t = GetXTigerDocTemplate(event->document); |
char* elemName = GetAttributeStringValueFromNum(event->element, Template_ATTR_name, NULL); |
char *elemName; |
|
|
if (Template_IsUsedComponent(t, event->document, elemName)) |
elemName = GetAttributeStringValueFromNum(event->element, Template_ATTR_name, NULL); |
|
if (Template_IsUsedComponent (t, event->document, elemName)) |
{ |
{ |
TtaDisplaySimpleMessage (CONFIRM, AMAYA, AM_TEMPLATE_USEDCOMP_CANTREMOVE); |
TtaDisplaySimpleMessage (CONFIRM, AMAYA, AM_TEMPLATE_USEDCOMP_CANTREMOVE); |
return TRUE; |
return TRUE; |