mirror of https://github.com/minexew/Shrine.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1163 lines
29 KiB
1163 lines
29 KiB
#help_index "DolDoc/Misc" |
|
|
|
U8 *ctrl_L_footer= |
|
"\n$$MU-X+Q,\"Abort\",LE=DOCM_CANCEL$$\n" |
|
"\n\n$$LK+PU,\"Click for Help\",A=\"FI:::/Doc/Widget.DD\"$$\n"; |
|
|
|
I64 PopUpLinkType(Bool include_anchor) |
|
{ |
|
I64 i; |
|
CDoc *doc=DocNew; |
|
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Link Type Menu\"$$\n" |
|
"\n$$LTBLUE$$$$MU,\"To file\",LE=LK_FILE$$\n" |
|
"$$MU,\"To anchor in file\",LE=LK_FILE_ANCHOR$$\n" |
|
"$$MU,\"To str in file\",LE=LK_FILE_FIND$$\n" |
|
"$$MU,\"To line in file\",LE=LK_FILE_LINE$$\n" |
|
"$$MU,\"To man page\",LE=LK_MAN_PAGE$$\n" |
|
"$$MU,\"To plain-text file\",LE=LK_PLAIN$$\n" |
|
"$$MU,\"To str in plain-text file\",LE=LK_PLAIN_FIND$$\n" |
|
"$$MU,\"To line in plain-text file\",LE=LK_PLAIN_LINE$$\n" |
|
"$$MU,\"To Bible chapter line and verse\",LE=LK_BIBLE_FIND$$\n" |
|
"$$MU,\"To Dictionary Definition\",LE=LK_DEF$$\n" |
|
"$$MU,\"To Help Index\",LE=LK_HELP_INDEX$$\n" |
|
"$$MU,\"To Addr\",LE=LK_ADDR$$\n"); |
|
if (include_anchor) |
|
DocPrint(doc,"$$MU,\"Place Anchor\",LE=LK_PLACE_ANCHOR$$\n"); |
|
DocPrint(doc,"%s",ctrl_L_footer); |
|
i=PopUpMenu(doc); |
|
DocDel(doc); |
|
return i; |
|
} |
|
|
|
class CEdFileLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512] format "$$DA-P,A=\"File :%s\"$$\n"; |
|
I64 book; |
|
U8 aux[512]; |
|
I64 num; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdFileAnchorLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512] format "$$DA-P,A=\"File :%s\"$$\n"; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n"; |
|
I64 num; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdFileFindLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512] format "$$DA-P,A=\"File :%s\"$$\n"; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Str :%s\"$$\n"; |
|
I64 num format "$$DA-TRM,A=\"Occurrence Num:%04d\"$$\n"; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdFileLineLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512] format "$$DA-P,A=\"File :%s\"$$\n"; |
|
I64 book; |
|
U8 aux[512]; |
|
I64 num format "$$DA-TRM,A=\"Line Num :%04d\"$$\n"; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdManPageLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512]; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Label :%s\"$$\n"; |
|
I64 num; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdAddrLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512]; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Addr Exp :%s\"$$\n"; |
|
I64 num format "$$DA-TRM,A=\"Bin Size :%04d\"$$\n"; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdPlaceAnchor |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512]; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Anchor Label :%s\"$$\n"; |
|
I64 num; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up, |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide format "$$CB,\"Hide\"$$\n"; |
|
}; |
|
|
|
class CEdBibleLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512]; |
|
I64 book format "$$LS,D=\"ST_BIBLE_BOOKS\"$$\n"; |
|
U8 aux[512] format "$$DA-P,A=\"Chapter Verse :%s\"$$\n"; |
|
I64 num; |
|
|
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdDefLink |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512]; |
|
I64 book; |
|
U8 aux[512] format "$$DA-P,A=\"Word :%s\"$$\n"; |
|
I64 num format "$$DA-TRM,A=\"Def Num :%4d\"$$\n"; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
class CEdProject |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
file[512] format "$$DA-P,A=\"File :%s\"$$\n"; |
|
I64 book; |
|
U8 aux[512]; |
|
I64 num; |
|
U8 html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
Bool pop_up format "$$CB,\"PopUp\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n", |
|
hide; |
|
}; |
|
|
|
Bool GetLink(I64 type,U8 **_tag,U8 **_link,Bool *_pop_up, |
|
Bool *_quote,U8 **_html_link) |
|
{ |
|
CEdFileLink *e=CAlloc(sizeof(CEdFileLink)); |
|
Bool res=FALSE; |
|
if (type>=0) { |
|
e->num=1; |
|
switch (type) { |
|
case LK_FILE: |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->file); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("FI:%s",e->file); |
|
} |
|
break; |
|
case LK_PLAIN: |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->file); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("PI:%s",e->file); |
|
} |
|
break; |
|
case LK_FILE_ANCHOR: |
|
if (DocForm(e,"CEdFileAnchorLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("FA:%s,%s",e->file,e->aux); |
|
} |
|
break; |
|
case LK_FILE_FIND: |
|
if (DocForm(e,"CEdFileFindLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (e->num==1) { |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("FF:%s,%s",e->file,e->aux); |
|
} else { |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("FF:%s,%s:%d",e->file,e->aux,e->num); |
|
} |
|
} |
|
break; |
|
case LK_PLAIN_FIND: |
|
if (DocForm(e,"CEdFileFindLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (e->num==1) { |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("PF:%s,%s",e->file,e->aux); |
|
} else { |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("PF:%s,%s:%d",e->file,e->aux,e->num); |
|
} |
|
} |
|
break; |
|
case LK_FILE_LINE: |
|
if (DocForm(e,"CEdFileLineLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->file); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("FL:%s,%d",e->file,e->num); |
|
} |
|
break; |
|
case LK_PLAIN_LINE: |
|
if (DocForm(e,"CEdFileLineLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->file); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("PL:%s,%d",e->file,e->num); |
|
} |
|
break; |
|
case LK_MAN_PAGE: |
|
if (DocForm(e,"CEdManPageLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("MN:%s",e->aux); |
|
} |
|
break; |
|
case LK_PLACE_ANCHOR: |
|
if (DocForm(e,"CEdPlaceAnchor",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) { |
|
if (e->hide) |
|
*_tag=StrNew(""); |
|
else |
|
*_tag=StrNew(e->aux); |
|
} else |
|
*_tag=StrNew(e->tag); |
|
*_link=StrNew(e->aux); |
|
} |
|
break; |
|
case LK_BIBLE_FIND: |
|
if (DocForm(e,"CEdBibleLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=MStrPrint("%Z,%s",e->book,"ST_BIBLE_BOOKS",e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("BF:%Z,%s",e->book,"ST_BIBLE_BOOKS",e->aux); |
|
} |
|
break; |
|
case LK_DEF: |
|
e->num=-1; |
|
if (DocForm(e,"CEdDefLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
if (e->num<0) |
|
*_link=MStrPrint("DN:%s",e->aux); |
|
else |
|
*_link=MStrPrint("DN:%s,%d",e->aux,e->num); |
|
|
|
} |
|
break; |
|
case LK_HELP_INDEX: |
|
if (DocForm(e,"CEdManPageLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("HI:%s",e->aux); |
|
} |
|
break; |
|
case LK_ADDR: |
|
e->num=DFT_ADDR_LINK_BIN_SIZE; |
|
if (DocForm(e,"CEdAddrLink",,,ctrl_L_footer)) { |
|
res=TRUE; |
|
if (e->num==DFT_ADDR_LINK_BIN_SIZE) { |
|
if (!*e->tag) |
|
*_tag=StrNew(e->aux); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("AD:%s",e->aux); |
|
} else { |
|
if (!*e->tag) |
|
*_tag=MStrPrint("%s,%d",e->aux,e->num); |
|
else |
|
*_tag=StrNew(e->tag); |
|
*_link=MStrPrint("AD:%s,%d",e->aux,e->num); |
|
} |
|
} |
|
break; |
|
} |
|
} |
|
if (*e->html_link) |
|
*_html_link=StrNew(e->html_link); |
|
else |
|
*_html_link=NULL; |
|
if (e->pop_up) |
|
*_pop_up=TRUE; |
|
else |
|
*_pop_up=FALSE; |
|
if (e->quote) |
|
*_quote=TRUE; |
|
else |
|
*_quote=FALSE; |
|
Free(e); |
|
return res; |
|
} |
|
|
|
U0 EdInsLink() |
|
{ |
|
U8 *tag=NULL,*link=NULL,*st=NULL,*html_link=NULL,*pop_up_st; |
|
Bool pop_up=FALSE,quote=FALSE; |
|
I64 type=PopUpLinkType(TRUE); |
|
if (type>=0) { |
|
if (GetLink(type,&tag,&link,&pop_up,"e,&html_link)) { |
|
if (pop_up) |
|
pop_up_st="+PU"; |
|
else |
|
pop_up_st=""; |
|
switch (type) { |
|
case LK_PLACE_ANCHOR: |
|
if (html_link) |
|
st=MStrPrint("$$AN,\"%$$Q\",A=\"%$$Q\",HTML=\"%$$Q\"$$", |
|
tag,link,html_link); |
|
else |
|
st=MStrPrint("$$AN,\"%$$Q\",A=\"%$$Q\"$$",tag,link); |
|
break; |
|
default: |
|
if (html_link) |
|
st=MStrPrint("$$LK%s,\"%$$Q\",A=\"%$$Q\",HTML=\"%$$Q\"$$", |
|
pop_up_st,tag,link,html_link); |
|
else |
|
st=MStrPrint("$$LK%s,\"%$$Q\",A=\"%$$Q\"$$",pop_up_st,tag,link); |
|
} |
|
} |
|
} |
|
if (st) { |
|
if (quote) |
|
"%$$Q",st; |
|
else |
|
"%s",st; |
|
} |
|
Free(tag); |
|
Free(link); |
|
Free(html_link); |
|
Free(st); |
|
} |
|
|
|
I64 PopUpColorType() |
|
{ |
|
I64 i; |
|
CDoc *doc=DocNew; |
|
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Color Type Menu\"$$\n" |
|
"\n$$LTBLUE$$$$MU,\"Foreground\",LE=DOCT_FOREGROUND$$\n" |
|
"$$MU,\"Background\",LE=DOCT_BACKGROUND$$\n" |
|
"$$MU,\"Default Foreground\",LE=DOCT_DFT_FOREGROUND$$\n" |
|
"$$MU,\"Default Background\",LE=DOCT_DFT_BACKGROUND$$\n" |
|
"%s",ctrl_L_footer); |
|
i=PopUpMenu(doc); |
|
DocDel(doc); |
|
return i; |
|
} |
|
|
|
I64 PopUpPageSettingType() |
|
{ |
|
I64 i; |
|
CDoc *doc=DocNew; |
|
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Page Setting Menu\"$$\n" |
|
"\n$$LTBLUE$$$$MU,\"Page Length\",LE=DOCT_PAGE_LEN$$\n" |
|
"$$MU,\"Page Header\",LE=DOCT_HEADER$$\n" |
|
"$$MU,\"Page Footer\",LE=DOCT_FOOTER$$\n" |
|
"$$MU,\"Left Margin\",LE=DOCT_LEFT_MARGIN$$\n" |
|
"$$MU,\"Right Margin\",LE=DOCT_RIGHT_MARGIN$$\n" |
|
"%s",ctrl_L_footer); |
|
i=PopUpMenu(doc); |
|
DocDel(doc); |
|
return i; |
|
} |
|
|
|
U0 EdInsColor() |
|
{ |
|
I64 type=PopUpColorType,col=DOC_DFT; |
|
if (type>=0) { |
|
col=PopUpColor(,FALSE); |
|
if (col==DOC_DFT) |
|
"$$%Z$$",type,"ST_DOC_CMDS"; |
|
else if (col>=0) |
|
"$$%Z,%d$$",type,"ST_DOC_CMDS",col; |
|
} |
|
} |
|
|
|
class CEdPageSetting1 |
|
{ |
|
U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n"; |
|
Bool winrel; |
|
}; |
|
|
|
class CEdPageSetting2 |
|
{ |
|
U8 val[512] format "$$DA-P,A=\"Setting Val:%s\"$$\n"; |
|
Bool winrel format "$$CB,\"Win Relative\"$$\n"; |
|
}; |
|
|
|
U0 EdInsPageSetting() |
|
{ |
|
I64 type=PopUpPageSettingType; |
|
CEdPageSetting1 *e=CAlloc(sizeof(CEdPageSetting1)); |
|
if (type>=0) { |
|
if (type==DOCT_RIGHT_MARGIN||type==DOCT_PAGE_LEN) { |
|
if (DocForm(e(CEdPageSetting2 *))) { |
|
if (e->winrel) { |
|
if (*e->val) |
|
"$$%Z+WR,%s$$",type,"ST_DOC_CMDS",e->val; |
|
else |
|
"$$%Z+WR,0$$",type,"ST_DOC_CMDS"; |
|
} else { |
|
if (*e->val) |
|
"$$%Z,%s$$",type,"ST_DOC_CMDS",e->val; |
|
else |
|
"$$%Z$$",type,"ST_DOC_CMDS"; |
|
} |
|
} |
|
} else { |
|
if (DocForm(e)) { |
|
if (*e->val) |
|
"$$%Z,%s$$",type,"ST_DOC_CMDS",e->val; |
|
else |
|
"$$%Z$$",type,"ST_DOC_CMDS"; |
|
} |
|
} |
|
} |
|
Free(e); |
|
} |
|
|
|
#define WIZ_HIGHLIGHT_ON (DOCT_ERROR+1) |
|
#define WIZ_HIGHLIGHT_OFF (DOCT_ERROR+2) |
|
|
|
I64 PopUpWidgetType() |
|
{ |
|
I64 i; |
|
CDoc *doc=DocNew; |
|
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Text Widgets Menu\"$$\n" |
|
"\n$$LTBLUE$$$$MU,\"Link\",LE=DOCT_LINK$$\n" |
|
"$$MU,\"Text\",LE=DOCT_TEXT$$\n" |
|
"$$MU,\"Tree Branch\",LE=DOCT_TREE$$\n" |
|
"$$MU,\"Color\",LE=DOCT_FOREGROUND$$\n" |
|
"$$MU,\"Page Settings\",LE=DOCT_PAGE_LEN$$\n" |
|
"$$MU,\"Cursor Movement\",LE=DOCT_CURSOR_MOVEMENT$$\n" |
|
"$$MU,\"Macro\",LE=DOCT_MACRO$$\n" |
|
"$$MU,\"Bttn\",LE=DOCT_BTTN$$\n" |
|
"$$MU,\"Check Box\",LE=DOCT_CHECK_BOX$$\n" |
|
"$$MU,\"List\",LE=DOCT_LST$$\n" |
|
"$$MU,\"Menu Val\",LE=DOCT_MENU_VAL$$\n" |
|
"$$MU,\"Data\",LE=DOCT_DATA$$\n" |
|
"$$MU,\"Hex Edit\",LE=DOCT_HEX_ED$$\n" |
|
"$$MU,\"Syntax Highlight ON\",LE=WIZ_HIGHLIGHT_ON$$\n" |
|
"$$MU,\"Syntax Highlight OFF\",LE=WIZ_HIGHLIGHT_OFF$$\n" |
|
"$$MU,\"HTML\",LE=DOCT_HTML_CODE$$\n" |
|
"$$MU,\"Song\",LE=DOCT_SONG$$\n" |
|
"%s",ctrl_L_footer); |
|
i=PopUpMenu(doc); |
|
DocDel(doc); |
|
return i; |
|
} |
|
|
|
class CEdText |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; |
|
Bool left_x format "$$CB,\"Left X\"$$\n", |
|
center_x format "$$CB,\"Center X\"$$\n", |
|
right_x format "$$CB,\"Right X\"$$\n", |
|
margin_rel format "$$CB,\"Margin Rel X\"$$\n", |
|
blink format "$$CB,\"Blink\"$$\n", |
|
invert format "$$CB,\"Invert\"$$\n", |
|
underline format "$$CB,\"Underline\"$$\n", |
|
tree format "$$CB,\"Tree\"$$\n", |
|
collapsed format "$$CB,\"Collapsed\"$$\n"; |
|
U8 scroll_x [512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", |
|
shift_x [512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n", |
|
shift_y [512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n", |
|
define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n", |
|
html_link[512] format "$$DA-P,A=\"Html Link :%s\"$$\n"; |
|
}; |
|
|
|
U0 EdInsText() |
|
{ |
|
U8 *st,buf[512]; |
|
CEdText *e=CAlloc(sizeof(CEdText)); |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (e->left_x ) CatPrint(buf,"+LX"); |
|
if (e->center_x) CatPrint(buf,"+CX"); |
|
if (e->right_x ) CatPrint(buf,"+RX"); |
|
if (e->margin_rel) CatPrint(buf,"+MRX"); |
|
if (e->blink) CatPrint(buf,"+BK"); |
|
if (e->invert) CatPrint(buf,"+IV"); |
|
if (e->underline) CatPrint(buf,"+UL"); |
|
if (e->tree) CatPrint(buf,"+TR"); |
|
if (e->collapsed) CatPrint(buf,"+C"); |
|
st=MStrPrint("%q",e->tag); |
|
"$$TX%s,\"%$$Q\"",buf,st; |
|
Free(st); |
|
if (*e->shift_x) |
|
",SX=%s",e->shift_x; |
|
if (*e->shift_y) |
|
",SY=%s",e->shift_y; |
|
if (*e->scroll_x) |
|
",SCX=%s",e->scroll_x; |
|
if (*e->define_str) { |
|
st=MStrPrint("%q",e->define_str); |
|
",D=\"%$$Q\"",st; |
|
Free(st); |
|
} |
|
if (*e->html_link) { |
|
st=MStrPrint("%q",e->html_link); |
|
",HTML=\"%$$Q\"",st; |
|
Free(st); |
|
} |
|
"$$"; |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdSong |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
song[512] format "$$DA-P,A=\"Song :%s\"$$\n"; |
|
}; |
|
|
|
U0 EdInsSong() |
|
{ |
|
CEdSong *e=CAlloc(sizeof(CEdSong)); |
|
if (DocForm(e,,,,ctrl_L_footer)) |
|
"$$SO,\"%$$Q\",A=\"%s\"$$",e->tag,e->song; |
|
Free(e); |
|
} |
|
|
|
class CEdHtmlCode |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Html Code:%s\"$$\n"; |
|
}; |
|
|
|
U0 EdInsHtml() |
|
{ |
|
CEdHtmlCode *e=CAlloc(sizeof(CEdHtmlCode)); |
|
if (DocForm(e,,,,ctrl_L_footer)) |
|
"$$HC,\"%$$Q\"$$",e->tag; |
|
Free(e); |
|
} |
|
|
|
class CEdMacroMenu |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
left_macro[512] format "$$DA-P,A=\"Left Click Macro :%s\"$$\n", |
|
left_exp[512] format "$$DA-P,A=\"Left Click Expression :%s\"$$\n"; |
|
Bool popup format "$$CB,\"PopUp\"$$\n", |
|
left_is_in_str format "$$CB,\"Left is InStr\"$$\n", |
|
left_x format "$$CB,\"Left X \"$$\n", |
|
center_x format "$$CB,\"Center X \"$$\n", |
|
right_x format "$$CB,\"Right X \"$$\n", |
|
margin_rel format "$$CB,\"Margin Rel X\"$$\n", |
|
blink format "$$CB,\"Blink\"$$\n", |
|
invert format "$$CB,\"Invert\"$$\n", |
|
underline format "$$CB,\"Underline\"$$\n", |
|
escape format "$$CB,\"Escape\"$$\n"; |
|
U8 scroll_x[512] format "$$DA-P,A=\"Scroll X Length Expression:%s\"$$\n", |
|
shift_x[512] format "$$DA-P,A=\"X Offset Expression :%s\"$$\n", |
|
shift_y[512] format "$$DA-P,A=\"Y Offset Expression :%s\"$$\n"; |
|
}; |
|
|
|
U0 EdInsMacroMenu(Bool is_macro) |
|
{ |
|
U8 *st,buf[512]; |
|
CEdMacroMenu *e=CAlloc(sizeof(CEdMacroMenu)); |
|
e->underline=TRUE; |
|
e->escape=TRUE; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (e->popup) CatPrint(buf,"+PU-X"); |
|
if (e->left_x ) CatPrint(buf,"+LX"); |
|
if (e->center_x) CatPrint(buf,"+CX"); |
|
if (e->right_x ) CatPrint(buf,"+RX"); |
|
if (e->margin_rel) CatPrint(buf,"+MRX"); |
|
if (e->blink) CatPrint(buf,"+BK"); |
|
if (e->invert) CatPrint(buf,"+IV"); |
|
if (!e->underline) CatPrint(buf,"-UL"); |
|
if (!e->escape) CatPrint(buf,"-X"); |
|
if (e->left_is_in_str) CatPrint(buf,"+LIS"); |
|
if (*e->tag || is_macro) { |
|
if (is_macro) { |
|
if (*e->tag) { |
|
st=MStrPrint("%q",e->tag); |
|
"$$MA%s,\"%$$Q\"",buf,st; |
|
Free(st); |
|
} else |
|
"$$MA%s",buf; |
|
} else { |
|
st=MStrPrint("%q",e->tag); |
|
"$$MU%s,\"%$$Q\"",buf,st; |
|
Free(st); |
|
} |
|
if (*e->left_exp) |
|
",LE=%s",e->left_exp; |
|
if (*e->left_macro) { |
|
st=MStrPrint("%q",e->left_macro); |
|
",LM=\"%$$Q\"",st; |
|
Free(st); |
|
} |
|
if (*e->shift_x) |
|
",SX=%s",e->shift_x; |
|
if (*e->shift_y) |
|
",SY=%s",e->shift_y; |
|
if (*e->scroll_x) |
|
",SCX=%s",e->scroll_x; |
|
"$$"; |
|
} |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdBttn |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; |
|
Bool popup format "$$CB,\"PopUp\"$$\n", |
|
left_x format "$$CB,\"Left X \"$$\n", |
|
center_x format "$$CB,\"Center X \"$$\n", |
|
right_x format "$$CB,\"Right X \"$$\n", |
|
margin_rel format "$$CB,\"Margin Rel X\"$$\n", |
|
escape format "$$CB,\"Escape\"$$\n"; |
|
U8 left_macro[512] format "$$DA-P,A=\"Left Click Macro:%s\"$$\n"; |
|
Bool left_is_in_str format "$$CB,\"Left is InStr\"$$\n"; |
|
U8 left_exp[512] format "$$DA-P,A=\"Left Click Expression:%s\"$$\n"; |
|
Bool quote format "$$CB,\"Quote\"$$\n"; |
|
}; |
|
|
|
U0 EdInsBttn() |
|
{ |
|
U8 *st,buf[512]; |
|
CEdBttn *e=CAlloc(sizeof(CEdBttn)); |
|
e->escape=TRUE; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (e->popup) CatPrint(buf,"+PU-X"); |
|
if (e->left_x ) CatPrint(buf,"+LX"); |
|
if (e->center_x) CatPrint(buf,"+CX"); |
|
if (e->right_x ) CatPrint(buf,"+RX"); |
|
if (e->margin_rel) CatPrint(buf,"+MRX"); |
|
if (!e->escape) CatPrint(buf,"-X"); |
|
if (e->left_is_in_str) CatPrint(buf,"+LIS"); |
|
if (*e->tag) { |
|
if (e->quote) { |
|
st=MStrPrint("%q",e->tag); |
|
"$$$$BT%s,\\\"%$$Q\\\"",buf,st; |
|
Free(st); |
|
if (*e->left_exp) |
|
",LE=%s",e->left_exp; |
|
if (*e->left_macro) { |
|
st=MStrPrint("%q",e->left_macro); |
|
",LM=\\\"%$$Q\\\"",st; |
|
Free(st); |
|
} |
|
"$$$$"; |
|
} else { |
|
st=MStrPrint("%q",e->tag); |
|
"$$BT%s,\"%$$Q\"",buf,st; |
|
Free(st); |
|
if (*e->left_exp) |
|
",LE=%s",e->left_exp; |
|
if (*e->left_macro) { |
|
st=MStrPrint("%q",e->left_macro); |
|
",LM=\"%$$Q\"",st; |
|
Free(st); |
|
} |
|
"$$"; |
|
} |
|
} |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdCursorMovement |
|
{ |
|
U8 left_exp[512] format "$$DA-P,A=\"X Expression (LE):%s\"$$\n", |
|
right_exp[512] format "$$DA-P,A=\"Y Expression (RE):%s\"$$\n"; |
|
Bool left_x format "$$CB,\"Left X \"$$\n", |
|
center_x format "$$CB,\"Center X \"$$\n", |
|
right_x format "$$CB,\"Right X \"$$\n", |
|
margin_rel format "$$CB,\"Margin Rel X\"$$\n", |
|
top_y format "$$CB,\"Top Y \"$$\n", |
|
center_y format "$$CB,\"Center Y \"$$\n", |
|
bottom_y format "$$CB,\"Bottom Y \"$$\n", |
|
page_rel format "$$CB,\"Page Rel Y\"$$\n", |
|
quote format "$$CB,\"Quote\"$$\n"; |
|
}; |
|
|
|
U0 EdInsCursorMovement() |
|
{ |
|
U8 buf[512]; |
|
CEdCursorMovement *e=CAlloc(sizeof(CEdCursorMovement)); |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (e->left_x ) CatPrint(buf,"+LX"); |
|
if (e->center_x) CatPrint(buf,"+CX"); |
|
if (e->right_x ) CatPrint(buf,"+RX"); |
|
if (e->margin_rel) CatPrint(buf,"+MRX"); |
|
if (e->top_y ) CatPrint(buf,"+TY"); |
|
if (e->center_y) CatPrint(buf,"+CY"); |
|
if (e->bottom_y) CatPrint(buf,"+BY"); |
|
if (e->page_rel) CatPrint(buf,"+PRY"); |
|
if (!*e->left_exp) CatPrint(buf,"-LE"); |
|
if (!*e->right_exp) CatPrint(buf,"-RE"); |
|
if (e->quote) |
|
"$$"; |
|
"$$CM%s",buf; |
|
if (*e->left_exp) |
|
",LE=%s",e->left_exp; |
|
if (*e->right_exp) |
|
",RE=%s",e->right_exp; |
|
"$$"; |
|
if (e->quote) |
|
"$$"; |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdDataNum |
|
{ |
|
U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n"; |
|
I64 len; |
|
Bool term format "$$CB,\"Form Field Terminator\"$$\n", |
|
remalloc, |
|
refresh format "$$CB,\"Refresh Data\"$$\n", |
|
update format "$$CB,\"Update Data\"$$\n"; |
|
}; |
|
|
|
class CEdDataStr |
|
{ |
|
U8 fmt_str[512] format "$$DA-P,A=\"Format Str:%s\"$$\n"; |
|
I64 len format "$$DA,A=\"Length:%d\"$$\n"; |
|
Bool term format "$$CB,\"Zero Terminator\"$$\n", |
|
remalloc format "$$CB,\"Remalloc for Unlimited Length\"$$\n", |
|
refresh format "$$CB,\"Refresh Data\"$$\n", |
|
update format "$$CB,\"Update Data\"$$\n"; |
|
}; |
|
|
|
U0 EdInsData() |
|
{ |
|
I64 i,type=RT_I64; |
|
U8 *st,buf[512],raw_type[16]; |
|
CEdDataNum *e=CAlloc(sizeof(CEdDataNum)); |
|
e->term=TRUE; |
|
e->len=DOCE_LEN_DFT; |
|
if ((i=PopUpPickDefineSub("ST_NATURAL_TYPES"))>=0) { |
|
*buf=0; |
|
i+=RT_I8; |
|
if (i==RT_F32) |
|
i=RT_F64; |
|
if (i==RT_UF32) {//U8 * |
|
i=DocForm(e(CEdDataStr *),,,,ctrl_L_footer); |
|
if (e->remalloc) { |
|
CatPrint(buf,"+M"); |
|
e->term=TRUE; |
|
} else |
|
CatPrint(buf,"-P"); |
|
} else { |
|
type=i; |
|
i=DocForm(e,,,,ctrl_L_footer); |
|
} |
|
if (i) { |
|
if (type==RT_I64) |
|
*raw_type=0; |
|
else |
|
StrPrint(raw_type,",RT=%Z",type,"ST_RAW_TYPES"); |
|
|
|
if (!e->term) CatPrint(buf,"-TRM"); |
|
if (e->refresh) CatPrint(buf,"+RD"); |
|
if (e->update) CatPrint(buf,"+UD"); |
|
|
|
st=MStrPrint("%q",e->fmt_str); |
|
if (e->remalloc) |
|
"$$$$DA%s,A=\\\"%$$Q\\\"$$$$",buf,st; |
|
else if (e->len==DOCE_LEN_DFT) |
|
"$$$$DA%s%s,A=\\\"%$$Q\\\"$$$$",buf,raw_type,st; |
|
else |
|
"$$$$DA%s,LEN=%d%s,A=\\\"%$$Q\\\"$$$$",buf,e->len,raw_type,st; |
|
Free(st); |
|
} |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdCheckBox |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; |
|
Bool refresh format "$$CB,\"Refresh Data\"$$\n"; |
|
I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; |
|
}; |
|
|
|
U0 EdInsCheckBox() |
|
{ |
|
U8 *st,buf[512],raw_type[16]; |
|
CEdCheckBox *e=CAlloc(sizeof(CEdCheckBox)); |
|
e->type=RT_I8-RT_I8; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
e->type+=RT_I8; |
|
if (e->type==RT_I8) |
|
*raw_type=0; |
|
else |
|
StrPrint(raw_type,",RT=%Z",e->type,"ST_RAW_TYPES"); |
|
if (e->refresh) CatPrint(buf,"+RD"); |
|
st=MStrPrint("%q",e->tag); |
|
"$$$$CB%s%s,\\\"%$$Q\\\"$$$$",buf,raw_type,st; |
|
Free(st); |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdLst |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Dft Sel :%s\"$$\n", |
|
define_str[512] format "$$DA-P,A=\"Define Str :%s\"$$\n"; |
|
Bool refresh format "$$CB,\"Refresh Data\"$$\n"; |
|
I64 type format "$$LS,D=\"ST_INT_SIZE_TYPES\"$$\n"; |
|
}; |
|
|
|
U0 EdInsLst() |
|
{ |
|
U8 *st1,*st2,buf[512],raw_type[16]; |
|
CEdLst *e=CAlloc(sizeof(CEdLst)); |
|
e->type=RT_I64-RT_I8; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
e->type+=RT_I8; |
|
if (e->type==RT_I64) |
|
*raw_type=0; |
|
else |
|
StrPrint(raw_type,",RT=%Z",e->type,"ST_RAW_TYPES"); |
|
if (e->refresh) CatPrint(buf,"+RD"); |
|
if (!*e->tag) |
|
st1=NULL; |
|
else |
|
st1=MStrPrint("%q",e->tag); |
|
st2=MStrPrint("%q",e->define_str); |
|
if (st1) |
|
"$$$$LS%s%s,\\\"%$$Q\\\",D=\\\"%$$Q\\\"$$$$",buf,raw_type,st1,st2; |
|
else |
|
"$$$$LS%s%s,D=\\\"%$$Q\\\"$$$$",buf,raw_type,st2; |
|
Free(st1); |
|
Free(st2); |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdHexEd |
|
{ |
|
I64 cnt format "$$DA,A=\"Count:%d\"$$\n", |
|
cols format "$$DA,A=\"Columns:%d\"$$\n"; |
|
Bool zero format "$$CB,\"Zero Based\"$$\n", |
|
refresh format "$$CB,\"Refresh Data\"$$\n"; |
|
}; |
|
|
|
U0 EdInsHexEd() |
|
{ |
|
U8 buf[512]; |
|
CEdHexEd *e=CAlloc(sizeof(CEdHexEd)); |
|
e->cnt=128; |
|
e->cols=4; |
|
e->zero=TRUE; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (!e->zero) CatPrint(buf,"-Z"); |
|
if (e->refresh) CatPrint(buf,"+RD"); |
|
"$$$$HX%s,%d,%d$$$$",buf,e->cnt,e->cols; |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdBin |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; |
|
I64 bin_num format "$$DA,A=\"Bin Num:%d\"$$\n"; |
|
U8 bin_ptr_link_file[512] format "$$DA-P,A=\"File:%s\"$$\n"; |
|
I64 bin_ptr_link_bin_num format "$$DA,A=\"File Bin Num:%d\"$$\n"; |
|
U8 bin_ptr_link_tag[512] format "$$DA-P,A=\"File Bin Tag:%s\"$$\n"; |
|
}; |
|
|
|
U0 EdInsBin(I64 bin_num,I64 type) |
|
{ |
|
CEdBin *e=CAlloc(sizeof(CEdBin)); |
|
StrPrint(e->tag,"<%d>",bin_num); |
|
e->bin_num=bin_num; |
|
e->bin_ptr_link_bin_num=1; |
|
if (DocForm(e,,, |
|
"Note: Normally, you enter no file,\n" |
|
"just a bin num. If You enter a\n" |
|
"file, enter a file bin num or a file\n" |
|
"bin tag.\n\n",ctrl_L_footer)) { |
|
if (*e->bin_ptr_link_file) { |
|
if (*e->bin_ptr_link_tag) |
|
"$$%Z,\"%$$Q\",BI=%d,BP=\"%s,%s\"$$",type,"ST_DOC_CMDS",e->tag,e->bin_num, |
|
e->bin_ptr_link_file,e->bin_ptr_link_tag; |
|
else |
|
"$$%Z,\"%$$Q\",BI=%d,BP=\"%s,%d\"$$",type,"ST_DOC_CMDS",e->tag,e->bin_num, |
|
e->bin_ptr_link_file,e->bin_ptr_link_bin_num; |
|
} else { |
|
if (DocBinFindNum(DocPut,e->bin_num)) |
|
"$$%Z,\"%$$Q\",BI=%d$$",type,"ST_DOC_CMDS",e->tag,e->bin_num; |
|
else |
|
PopUpOk("Invalid Binary Num"); |
|
} |
|
} |
|
Free(e); |
|
} |
|
|
|
class CEdTree |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n"; |
|
I64 indent format "$$DA,A=\"Indention:%d\"$$\n"; |
|
Bool collapsed format "$$CB,\"Collapsed\"$$\n"; |
|
}; |
|
|
|
U0 EdInsTree() |
|
{ |
|
U8 *st1,*st2,buf[512]; |
|
CEdTree *e=CAlloc(sizeof(CEdTree)); |
|
e->collapsed=TRUE; |
|
e->indent=2; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
*buf=0; |
|
if (!e->collapsed) CatPrint(buf,"-C"); |
|
st1=MStrPrint("%q",e->tag); |
|
st2=MStrPrint("$$TR%s,\"%$$Q\"$$\n$$ID,%d$$*\n$$ID,%d$$", |
|
buf,st1,e->indent,-e->indent); |
|
DocPrintAtomic(DocPut,"%s",st2); |
|
Free(st1); |
|
Free(st2); |
|
} |
|
Free(e); |
|
} |
|
|
|
U0 EdInsWidgetWiz() |
|
{ |
|
I64 type=PopUpWidgetType; |
|
switch (type) { |
|
case DOCT_FOREGROUND: |
|
EdInsColor; |
|
break; |
|
case DOCT_PAGE_LEN: |
|
EdInsPageSetting; |
|
break; |
|
case DOCT_LINK: |
|
EdInsLink; |
|
break; |
|
case DOCT_TEXT: |
|
EdInsText; |
|
break; |
|
case DOCT_TREE: |
|
EdInsTree; |
|
break; |
|
case DOCT_MACRO: |
|
EdInsMacroMenu(TRUE); |
|
break; |
|
case DOCT_MENU_VAL: |
|
EdInsMacroMenu(FALSE); |
|
break; |
|
case DOCT_CURSOR_MOVEMENT: |
|
EdInsCursorMovement; |
|
break; |
|
case DOCT_BTTN: |
|
EdInsBttn; |
|
break; |
|
case DOCT_DATA: |
|
EdInsData; |
|
break; |
|
case DOCT_CHECK_BOX: |
|
EdInsCheckBox; |
|
break; |
|
case DOCT_LST: |
|
EdInsLst; |
|
break; |
|
case DOCT_HEX_ED: |
|
EdInsHexEd; |
|
break; |
|
case DOCT_SONG: |
|
EdInsSong; |
|
break; |
|
case WIZ_HIGHLIGHT_ON: |
|
"$$HL,1$$"; |
|
break; |
|
case WIZ_HIGHLIGHT_OFF: |
|
"$$HL,0$$"; |
|
break; |
|
case DOCT_HTML_CODE: |
|
EdInsHtml; |
|
} |
|
} |
|
|
|
#define EST_SPRITE 0 |
|
#define EST_SPRITE_PTR 1 |
|
#define EST_DUP_SPRITE 2 |
|
#define EST_SPRITE_SIZE 3 |
|
#define EST_SPRITE_MACRO 4 |
|
#define EST_SPRITE_MENU 5 |
|
#define EST_SPRITE_LINK 6 |
|
|
|
I64 PopUpSpriteType() |
|
{ |
|
I64 i; |
|
CDoc *doc=DocNew; |
|
DocPrint(doc,"$$PURPLE$$$$TX+CX,\"Graphic Sprite Resource Menu\"$$\n" |
|
"$$LK+PU+CX,\"Click for Help\",A=\"FI:::/Doc/Resource.DD.Z\"$$\n\n" |
|
"$$LTBLUE$$$$MU,\"Make Sprite\",LE=EST_SPRITE$$$$FG$$\t " |
|
"Start by making a sprite.\n" |
|
"$$LTBLUE$$$$MU,\"Ptr to Sprite\",LE=EST_SPRITE_PTR$$$$FG$$\t " |
|
"Insert pointer into src code.\n" |
|
"$$LTBLUE$$$$MU,\"Duplicate Sprite\",LE=EST_DUP_SPRITE$$$$FG$$ " |
|
"Make dup image for in a doc.\n" |
|
"$$LTBLUE$$$$MU,\"Sprite Size\",LE=EST_SPRITE_SIZE$$$$FG$$\t " |
|
"Insert size of a sprite into src code.\n" |
|
"$$LTBLUE$$$$MU,\"Sprite Macro\",LE=EST_SPRITE_MACRO$$$$FG$$\t " |
|
"Create icon with auto-text payload.\n" |
|
"$$LTBLUE$$$$MU,\"Sprite Menu Item\",LE=EST_SPRITE_MENU$$$$FG$$ " |
|
"Create icon with numeric payload.\n" |
|
"$$LTBLUE$$$$MU,\"Sprite Link\",LE=EST_SPRITE_LINK$$$$FG$$\t " |
|
"Create icon with link payload.\n\n" |
|
"$$LTBLUE$$$$MU,\"Abort\",LE=DOCM_CANCEL$$\n\n"); |
|
i=PopUpMenu(doc); |
|
DocDel(doc); |
|
return i; |
|
} |
|
|
|
class CEdMacroSprite |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
exp[512] format "$$DA-P,A=\"Macro :%s\"$$\n"; |
|
Bool escape format "$$CB,\"Escape\"$$\n", |
|
popup format "$$CB,\"PopUp\"$$\n", |
|
is_in_str format "$$CB,\"InStr\"$$\n"; |
|
}; |
|
|
|
class CEdMenuSprite |
|
{ |
|
U8 tag[512] format "$$DA-P,A=\"Tag Text :%s\"$$\n", |
|
exp[512] format "$$DA-P,A=\"Expression :%s\"$$\n"; |
|
Bool escape format "$$CB,\"Escape\"$$\n", |
|
popup, |
|
is_in_str; |
|
}; |
|
|
|
U8 *EdSpriteLink(Bool *_pop_up,U8 **_html_link) |
|
{ |
|
U8 *res=NULL,*tag=NULL,*link=NULL; |
|
Bool quote=FALSE; |
|
I64 type=PopUpLinkType(FALSE); |
|
*_html_link=NULL; |
|
if (type>=0 && GetLink(type,&tag,&link,_pop_up,"e,_html_link)) |
|
res=MStrPrint("\"%$$Q\",A=\"%$$Q\"",tag,link); |
|
Free(tag); |
|
Free(link); |
|
return res; |
|
} |
|
|
|
U8 *EdSprite(I64 bin_num) |
|
{ |
|
I64 type=PopUpSpriteType; |
|
Bool pop_up; |
|
U8 *st,*st1=NULL,*st2=NULL,buf[1024],*html_link=NULL; |
|
CEdMacroSprite *e=CAlloc(sizeof(CEdMacroSprite)); |
|
*buf=0; |
|
switch (type) { |
|
case EST_SPRITE: |
|
st1=MStrPrint("\"<%d>\"",bin_num); |
|
break; |
|
case EST_SPRITE_MACRO: |
|
e->escape=TRUE; |
|
if (DocForm(e,,,,ctrl_L_footer)) { |
|
CatPrint(buf,"+UL"); |
|
if (e->is_in_str) CatPrint(buf,"+LIS"); |
|
if (e->popup) CatPrint(buf,"+PU"); |
|
if (e->escape) CatPrint(buf,"+X"); |
|
st=MStrPrint("%q",e->exp); |
|
st1=MStrPrint("\"%$$Q\",LM=\"%$$Q\"",e->tag,st); |
|
Free(st); |
|
} |
|
break; |
|
case EST_SPRITE_MENU: |
|
e->escape=TRUE; |
|
if (DocForm(e,"CEdMenuSprite",,,ctrl_L_footer)) { |
|
if (e->escape) CatPrint(buf,"+X"); |
|
st1=MStrPrint("\"%$$Q\",LE=%s",e->tag,e->exp); |
|
} |
|
break; |
|
case EST_SPRITE_LINK: |
|
CatPrint(buf,"+L"); |
|
st1=EdSpriteLink(&pop_up,&html_link); |
|
if (pop_up) |
|
CatPrint(buf,"+PU"); |
|
break; |
|
case EST_SPRITE_PTR: |
|
EdInsBin(--bin_num,DOCT_INS_BIN); |
|
break; |
|
case EST_SPRITE_SIZE: |
|
EdInsBin(--bin_num,DOCT_INS_BIN_SIZE); |
|
break; |
|
case EST_DUP_SPRITE: |
|
EdInsBin(--bin_num,DOCT_SPRITE); |
|
break; |
|
} |
|
if (st1) { |
|
if (html_link) |
|
st2=MStrPrint("$$SP%s,%s,HTML=\"%$$Q\",BI=%d$$",buf,st1,html_link,bin_num); |
|
else |
|
st2=MStrPrint("$$SP%s,%s,BI=%d$$",buf,st1,bin_num); |
|
Free(st1); |
|
} |
|
Free(e); |
|
Free(html_link); |
|
return st2; |
|
}
|
|
|