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

📄 replacedialog.c

📁 linux 下类似于TC功能的编译器,但还没有完成,希望大家共同研究
💻 C
字号:
#include "replacedialog.h"ReplaceDialog::ReplaceDialog(){	fld[0]=NULL;	fld[1]=NULL;	fld[2]=NULL;	frm=NULL;	strcpy(locate[0],"Find");	strcpy(locate[1],"Replace");	strcpy(locate[2],"[ ]Case Sensitive");	strcpy(locate[3],"[ ]Replace All");	strcpy(locate[4],"Search Direction");	strcpy(locate[5],"[ ]Up");	strcpy(locate[6],"[ ]Down");	strcpy(locate[7],"[ ]Tag-Bookmark");}ReplaceDialog::~ReplaceDialog(){	if(frm!=NULL)	{		unpost_form(frm);		free_form(frm);	}	if(fld[0]!=NULL)		free_field(fld[0]);	if(fld[1]!=NULL)		free_field(fld[1]);	if(fld[2]!=NULL)		free_field(fld[2]);	if(fld[3]!=NULL)		free_field(fld[3]);	if(fld[4]!=NULL)		free_field(fld[4]);	if(fld[5]!=NULL)		free_field(fld[5]);	if(fld[6]!=NULL)		free_field(fld[6]);	if(fld[7]!=NULL)		free_field(fld[7]);}BOOL ReplaceDialog::DrawReplaceDialog(){	BOOL ret=FALSE;	int rows,cols;	rows=4;	cols=width-strlen(locate[1])-2;		wattron(basewin,COLOR_PAIR(color));	mvwprintw(basewin,1,1,locate[0]);	mvwprintw(basewin,2,1,locate[1]);	wattroff(basewin,COLOR_PAIR(color));		fld[0] = new_field(1, cols, 0,0, 0, 0);//find	fld[1] = new_field(1, cols, 1,0, 0, 0);//replace	fld[2] = new_field(1, strlen(locate[2]), 2, 0, 0, 0);//case sensitive	fld[3] = new_field(1, strlen(locate[3]), 2, (int)(cols/2), 0, 0);//replace all	fld[4] = new_field(1, strlen(locate[4]), 3, 0, 0, 0);//dir	fld[5] = new_field(1, strlen(locate[5]), 3, (int)(cols/2), 0, 0);//up	fld[6] = new_field(1, strlen(locate[6]), 3, (int)(cols*3/4),0,0);//down	fld[7] = NULL;	set_field_back(fld[0], COLOR_PAIR(COLOR_WHITE_BLUE)|A_UNDERLINE); 	set_field_back(fld[1], COLOR_PAIR(COLOR_WHITE_BLUE)|A_UNDERLINE); 	set_field_back(fld[2], COLOR_PAIR(COLOR_WHITE_BLACK)); 	set_field_back(fld[3], COLOR_PAIR(COLOR_WHITE_BLACK)); 	set_field_back(fld[4], COLOR_PAIR(COLOR_WHITE_BLACK)); 	set_field_back(fld[5], COLOR_PAIR(COLOR_WHITE_BLACK)); 	set_field_back(fld[6], COLOR_PAIR(COLOR_WHITE_BLACK)); 	field_opts_on(fld[0], O_ACTIVE);	field_opts_on(fld[1], O_ACTIVE);	field_opts_off(fld[0],O_AUTOSKIP);	field_opts_off(fld[1],O_AUTOSKIP);	field_opts_off(fld[0],O_STATIC);	field_opts_off(fld[1],O_STATIC);		set_max_field(fld[0],MAXFIELDLEN);	set_max_field(fld[1],MAXFIELDLEN);	set_field_buffer(fld[2],0,locate[2]);	set_field_buffer(fld[3],0,locate[3]);	set_field_buffer(fld[4],0,locate[4]);	set_field_buffer(fld[5],0,locate[5]);	set_field_buffer(fld[6],0,locate[6]);	frm = new_form(fld);	set_current_field(frm, fld[0]);	set_form_win(frm, basewin);	set_form_sub(frm, derwin(basewin,rows,cols,1,strlen(locate[1])+1));		post_form(frm);	goto over;over:	ret=TRUE;//failure:	return ret;}BOOL ReplaceDialog::InitReplaceDialog(int Height,int Width,int Color,int Shadow,int FontStyle,int WinType,char *Title){	BOOL ret=FALSE;	if(WinType==DIALOG_EDITFIND)		ret=InitDialog(Height,Width,Color,Shadow,FontStyle,WinType,OKCANCELDLG,"[Find]");	else if(WinType==DIALOG_EDITREPLACE)		ret=InitDialog(Height,Width,Color,Shadow,FontStyle,WinType,OKCANCELDLG,"[Replace]");	else		ret=InitDialog(Height,Width,Color,Shadow,FontStyle,WinType,OKCANCELDLG,"[Unknown]");	if (ret==FALSE)		goto failure;	ret=DrawReplaceDialog();	if (ret==FALSE)		goto failure;		curs_set(0);	wrefresh(basewin);	goto over;over:	ret=TRUE;failure:		return ret; }BOOL ReplaceDialog::ReplaceDialogDriver(){	BOOL ret=FALSE;	int ch;	int exist=TRUE;	while(exist && (ch = wgetch(basewin)))	{		switch(ch)		{			case KEY_DOWN:				break;			case KEY_UP:				break;			case KEY_LEFT:				break;			case KEY_RIGHT:				break;			case KEY_NPAGE:				break;			case KEY_PPAGE:				break;			case KEY_HOME:				break;			case KEY_END:				break;			case KEY_DC:				break;			case KEY_BACKSPACE:				break;			case KEY_TAB:				break;			case 0xA:				exist=FALSE;				break;			default:				break;		}	}		return ret;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -