📄 auxfunc.h
字号:
#include "basewin.c"#include "vscroll.c"#include "hscroll.c"#include "dialog.c"#include "msgdialog.c"#include "file.c"#include "topmenu.c"#include "status.c"#include "codearea.c"BaseWindow *activewin;TopMenu menu;VScroll rscroll;HScroll hscroll;VScroll lscroll;Status status;CodeArea code;void refreshmainwnd(){ code.ShowPage(); code.Refresh();}int processkey(){ int key=0; int ret=0; key=activewin->Getach(); switch(activewin->GetWinType()) { case TOP_MENU: ret=((TopMenu *)activewin)->MenuDriver(key); break; case VSCROLL_NOBORDER: break; case VSCROLL_BORDER: break; case HSCROLL_NOBORDER: break; case HSCROLL_BORDER: break; case TEXT_CENTEREDITOR: ret=((CodeArea *)activewin)->CodeAreaDriver(key); break; } return ret;}/****/void getpath(char *str){ int len,pos; len=strlen(str); pos=len; while(pos>0) { if(str[pos-1]=='/') break; pos--; } if(pos<len && pos>1) { str[pos-1]='\0'; } else if(pos==1) { str[pos-1]='/'; str[pos]='/'; } else if(pos==0) { str[pos]='\0'; } return;}#include "filedialog.c"#include "finddialog.c"#include "replacedialog.c"#include "selectdialog.c"/***global function about file operation*/BOOL gSaveFile(){ BOOL ret=FALSE; if(strlen(code.GetFileName())>0) { if(access(code.GetFileName(),W_OK)==-1) //no right to write goto over; if(code.SaveFile()==FALSE) { goto over; } strcpy(msg.fileobj.filename,code.GetFileName()); msg.fileobj.type=code.GetWinType(); } else { FileDialog dialog; dialog.InitFileDialog(16,50,COLOR_BLACK_CYAN,0,A_BOLD,DIALOG_FILESAVE,OKCANCELDLG,NULL); if(dialog.FileDialogDriver()==BUTOK) {// if(access(msg.fileobj.filename,W_OK)==-1) //nowriteright// goto over; if(code.SaveFile(msg.fileobj.filename)==FALSE) { goto over; } } } ret=TRUE;over: return ret;}BOOL gSaveFileAs(){ BOOL ret=FALSE; FileDialog dialog; dialog.InitFileDialog(16,50,COLOR_BLACK_CYAN,0,A_BOLD,DIALOG_FILESAVEAS,OKCANCELDLG,NULL); activewin=&dialog; if(dialog.FileDialogDriver()==BUTOK) { if(code.SaveFile(msg.fileobj.filename)==FALSE) { goto over; } } ret=TRUE;over: return ret;}BOOL gNewFile(){ BOOL ret=FALSE; int deci; if(code.Modified()) { MsgDialog msgdlg; curs_set(0); msgdlg.InitMsgDialog(6,40,COLOR_BLACK_CYAN,0,A_BOLD,DIALOG_FILEOPEN,YESNOCANCELDLG,"[Message]"); msgdlg.SetModule(TRUE); msgdlg.DrawMsgDialog("The current file hasn been modified! Save it?"); deci=msgdlg.MsgDialogDriver(); if(deci==BUTYES) { gSaveFile(); code.NewFile(); msg.fileobj.type=0; memset(msg.fileobj.filename,0,MAXFIELDLEN); } else if(deci==BUTNO) { code.NewFile(); msg.fileobj.type=0; memset(msg.fileobj.filename,0,MAXFIELDLEN); } } else { code.NewFile(); msg.fileobj.type=0; memset(msg.fileobj.filename,0,MAXFIELDLEN); } ret=TRUE; goto over;over: return ret;}BOOL gOpenFile(){ BOOL ret=FALSE; int retval=0; int deci; if(code.Modified()) { MsgDialog msgdlg; curs_set(0); msgdlg.InitMsgDialog(6,40,COLOR_BLACK_CYAN,0,A_BOLD,DIALOG_FILEOPEN,YESNOCANCELDLG,"[Message]"); msgdlg.SetModule(TRUE); msgdlg.DrawMsgDialog("The current file hasn been modified! Save it?"); deci=msgdlg.MsgDialogDriver(); if(deci==BUTYES) { gSaveFile(); msg.fileobj.type=DIALOG_FILEOPEN; memset(msg.fileobj.filename,0,MAXFIELDLEN); } else if(deci==BUTCANCEL) { ret=TRUE; goto over; } } { FileDialog dialog; dialog.InitFileDialog(16,50,COLOR_BLACK_CYAN,0,A_BOLD,msg.fileobj.type,OKCANCELDLG,NULL); activewin=&dialog; retval=dialog.FileDialogDriver(); if(retval==BUTOK) { if(code.ReadFile(msg.fileobj.filename)==FALSE) { ret=FALSE; goto over; } } } ret=TRUE;over: return ret;}/***global function about edit operation*/BOOL gFind(){ BOOL ret=FALSE; int retval=0; FindDialog dialog; if(dialog.InitFindDialog(6,25,COLOR_BLACK_CYAN,0,A_BOLD,msg.fileobj.type,NULL)==FALSE) goto failure; activewin=&dialog; retval=dialog.FindDialogDriver(); if(retval==BUTOK) {} else {} goto over;over: ret=TRUE;failure: return ret;}BOOL gReplace(){ BOOL ret=FALSE; int retval=0; ReplaceDialog dialog; if(dialog.InitReplaceDialog(6,45,COLOR_BLACK_CYAN,0,A_BOLD,msg.fileobj.type,NULL)==FALSE) goto failure; activewin=&dialog; retval=dialog.ReplaceDialogDriver(); if(retval==BUTOK) {} else {} goto over;over: ret=TRUE;failure: return ret;}BOOL gSelect(){ BOOL ret=FALSE; int retval=0; if(msg.fileobj.type==DIALOG_EDITSELECT) { SelectDialog dialog; if(dialog.InitSelectDialog(8,30,COLOR_BLACK_CYAN,0,A_BOLD,msg.fileobj.type)==FALSE) goto failure; activewin=&dialog; retval=dialog.SelectDialogDriver(); } else if(msg.fileobj.type==DIALOG_EDITSELECTALL) { msg.seleobj.begline=1; msg.seleobj.begcol =1; msg.seleobj.endline=code.GetTotalRow(); msg.seleobj.endcol =code.GetCurColWidth(NULL,msg.seleobj.endline-1); } if(retval==BUTOK) { if(code.SelectText()==FALSE) ErrMsg(OKONLYDLG,"select text error!"); } else {} goto over;over: ret=TRUE;failure: return ret;}BOOL gBlockOp(){ BOOL ret=FALSE; if(msg.blockop.type==BLOCKCUT) { if(code.CutBlock()==FALSE) { ErrMsg(OKONLYDLG,"Cut block error!"); goto failure; } } else if(msg.blockop.type==BLOCKCOPY) { if(code.CopyBlock()==FALSE) { ErrMsg(OKONLYDLG,"Copy block error!"); goto failure; } } else if(msg.blockop.type==BLOCKPASTE) { if(code.PasteBlock()==FALSE) { ErrMsg(OKONLYDLG,"Paste block error!"); goto failure; } } else if(msg.blockop.type==BLOCKDEL) { if(code.DelBlock()==FALSE) { ErrMsg(OKONLYDLG,"Del block error!"); goto failure; } } ret=TRUE;failure: return ret;}//end of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -