⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 auxfunc.h

📁 linux 下类似于TC功能的编译器,但还没有完成,希望大家共同研究
💻 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 + -