#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,\"LeftX \"$$\n", center_x format "$$CB,\"CenterX \"$$\n", right_x format "$$CB,\"RightX \"$$\n", margin_rel format "$$CB,\"Margin Rel X\"$$\n", top_y format "$$CB,\"TopY \"$$\n", center_y format "$$CB,\"CenterY \"$$\n", bottom_y format "$$CB,\"BottomY \"$$\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; }