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

📄 sbpad.c

📁 smallbasic for linux
💻 C
📖 第 1 页 / 共 5 页
字号:
		file[0] = '\0';		*lastPos = 0;		*font = 0;		}	tmp_free(buff);	dbClose(f);	return found;}Boolean		FSVFormHandleEventSEG(EventPtr e)	SEC(IDE);Boolean		FSVFormHandleEventSEG(EventPtr e){    Boolean handled = false;    FormPtr frm;	ListPtr	list;	int		i;        switch (e->eType) {    case frmOpenEvent:		frm = FrmGetActiveForm();		FrmDrawForm(frm);		buildUserFileList();		if	( !FSVLoadStatus(curFSVName, &lastDocPos, &lastDocFont) )	{			lastDocPos = 0;			lastDocFont = 0;			lastFSV = 0;			}		else	{			lastFSV = 0;			for ( i = 0; i < ufstCount; i ++ )	{				if	( StrCompare(curFSVName, ufstTable[i]) == 0 )	{					lastFSV = i;					break;					}				}			}		FldSetFont(GetFieldPtr(fldTEXT), lastDocFont);		if	( lastDocFont == HK40CustomFont )				lastDocPageSize = 20;		else if	( lastDocFont == SM10CustomFont )				lastDocPageSize = 13;		else if	( lastDocFont == DOSCustomFont )				lastDocPageSize = 13;		else if	( lastDocFont == DOS4CustomFont )				lastDocPageSize = 13;		else if	( lastDocFont == 0 || lastDocFont == 1 )			lastDocPageSize = 10;		else if ( lastDocFont == 2 )			lastDocPageSize = 8;		else			lastDocPageSize = 7;		list = GetListPtr(lstSection);		LstSetListChoices(list, ufstTable, ufstCount);		UpdatePopup(trgSection, lstSection, lastFSV, ufstTable);		StrCopy(curFSVName, ufstTable[lastFSV]);		dispFSV(curFSVName);		setTextPos(lastDocPos);		autoReturnToForm = 0;		FrmSetFocus(frm, FrmGetObjectIndex(frm, fldTEXT));		handled = true;		break;	case popSelectEvent:    	switch (e->data.popSelect.controlID) {	    case trgSection:			if	( lastFSV != e->data.popSelect.selection )	{				UpdatePopup(trgSection, lstSection, e->data.popSelect.selection, ufstTable);				lastFSV = e->data.popSelect.selection;				StrCopy(curFSVName, ufstTable[lastFSV]);				dispFSV(curFSVName);				setTextPos(0);				}			handled = 1;			break;			}		break;    case menuEvent:		switch(e->data.menu.itemID) {		case mnuNew:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			if	( BasicInputBox("New FileName:", temp, 255) )	{				checkSaveFSV();				if	( createNewFSV(temp) )	{					lastFSV = 0;					for ( i = 0; i < ufstCount; i ++ )	{						if	( StrCompare(curFSVName, ufstTable[i]) == 0 )	{							lastFSV = i;							break;							}						}					list = GetListPtr(lstSection);					LstSetListChoices(list, ufstTable, ufstCount);					UpdatePopup(trgSection, lstSection, lastFSV, ufstTable);					StrCopy(curFSVName, ufstTable[lastFSV]);					dispFSV(curFSVName);					setTextPos(lastDocPos);					}				}			break;		case mnuBeam:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			checkSaveFSV();			beamSendDB(curFSVName);			break;		case mnuEdit:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			checkSaveFSV();			closeFSV();			FrmGotoForm(MainForm);			break;		case mnuSave:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			saveFSV(curFSVName);			FldSetDirty(fld_ptr(fldTEXT), 0);			break;		case mnuSaveAs:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			if	( BasicInputBox("New FileName:", temp, 255) )	{				frm = FrmGetActiveForm();				saveFSV(temp);				lastFSV = 0;				for ( i = 0; i < ufstCount; i ++ )	{					if	( StrCompare(curFSVName, ufstTable[i]) == 0 )	{						lastFSV = i;						break;						}					}				list = GetListPtr(lstSection);				LstSetListChoices(list, ufstTable, ufstCount);				UpdatePopup(trgSection, lstSection, lastFSV, ufstTable);				StrCopy(curFSVName, ufstTable[lastFSV]);				dispFSV(curFSVName);				setTextPos(lastDocPos);				}			break;		case mnuClose:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			checkSaveFSV();			closeFSV();			FrmGotoForm(MainForm);			break;		case mnuGoto:			if	( BasicInputBox("Go to line...", temp, 64) )	{				gotoLine(xstrtol(temp));				lastDocPos = getTextPos();				}	      	break;		case mnuSearch:			if	( BasicInputBox("Search for:", temp, 255) )	{				searchFor(temp);				lastDocPos = getTextPos();				}	      	break;		case mnuSearchAgain:			searchAgain();			lastDocPos = getTextPos();			break;		case mnuAbout:			DoAboutForm();	      	break;		case mnuFileInfo:	      	break;		case mnuFSVHelp://			GPlmAlert(HelpFSVStrTID, HelpFSVStringID);	      	break;		case mnuUndo:			FldUndo(fld_ptr(fldTEXT));			break;		case mnuCut:			FldCut(fld_ptr(fldTEXT));			break;		case mnuCopy:			FldCopy(fld_ptr(fldTEXT));			break;		case mnuSelAll:			FldSetSelection(fld_ptr(fldTEXT), 0, 0xFFFF);			break;	   	case mnuPaste:			  			FldPaste(fld_ptr(fldTEXT));			break;	   	case mnuKeyboard:			SysKeyboardDialog(kbdDefault);			break;		 case mnuGraffiti:			SysGraffitiReferenceDialog(referenceDefault);			break;	   	case mnuFont0:			FldSetFont(fld_ptr(fldTEXT), (lastDocFont = stdFont));			lastDocPageSize = 10;			break;	   	case mnuFont1:			FldSetFont(fld_ptr(fldTEXT), (lastDocFont = boldFont));			lastDocPageSize = 10;			break;	   	case mnuFont2:			FldSetFont(fld_ptr(fldTEXT), (lastDocFont = largeFont));			lastDocPageSize = 8;			break;	   	case mnuFont7:			FldSetFont(fld_ptr(fldTEXT), (lastDocFont = largeBoldFont));			lastDocPageSize = 7;			break;	   	case mnuFontHK:			if	( os_charset == enc_utf8 )	{				FldSetFont(fld_ptr(fldTEXT), (lastDocFont = HK40CustomFont));				lastDocPageSize = 20;				}			else				FrmAlert(AlertCFontMB);			break;	   	case mnuFontSM10:			if	( os_charset == enc_utf8 )	{				FldSetFont(fld_ptr(fldTEXT), (lastDocFont = SM10CustomFont));				lastDocPageSize = 13;				}			else				FrmAlert(AlertCFontMB);			break;	   	case mnuFontDOS:			if	( os_charset == enc_utf8 )	{				FldSetFont(fld_ptr(fldTEXT), (lastDocFont = DOSCustomFont));				lastDocPageSize = 15;				}			else				FrmAlert(AlertCFontMB);			break;	   	case mnuFontDOS4:			if	( os_charset == enc_utf8 )	{				FldSetFont(fld_ptr(fldTEXT), (lastDocFont = DOS4CustomFont));				lastDocPageSize = 15;				}			else				FrmAlert(AlertCFontMB);			break;		case	mnuDelete:			FileDelete(0, curFSVName);			lastFSV = 0;			for ( i = 0; i < ufstCount; i ++ )	{				if	( StrCompare(curFSVName, ufstTable[i]) == 0 )	{					lastFSV = i;					break;					}				}			list = GetListPtr(lstSection);			LstSetListChoices(list, ufstTable, ufstCount);			UpdatePopup(trgSection, lstSection, lastFSV, ufstTable);			StrCopy(curFSVName, ufstTable[lastFSV]);			dispFSV(curFSVName);			setTextPos(lastDocPos);			break;		  	};    	handled = true;		break;	case keyDownEvent:		switch ( e->data.keyDown.chr )	{		case	pageUpChr: /* Prev */			if ( FldScrollable(fld_ptr(fldTEXT), winUp) ) 				FldScrollField(fld_ptr(fldTEXT), lastDocPageSize, winUp);			handled = true;			break;		case pageDownChr: /* next */			if	( FldScrollable(fld_ptr(fldTEXT), winDown) )					FldScrollField(fld_ptr(fldTEXT), lastDocPageSize, winDown);			handled = 1;			break;			};		break;    case ctlSelectEvent:		switch(e->data.ctlSelect.controlID) {		case	btnSFT:			FldInsert(fld_ptr(fldTEXT), "\t", 1);	    	handled = true;			break;		case	btnCLOSE:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			checkSaveFSV();			closeFSV();			FrmGotoForm(MainForm);	    	handled = true;			break;		case	btnUP:			if ( FldScrollable(fld_ptr(fldTEXT), winUp) ) 				FldScrollField(fld_ptr(fldTEXT), 1, winUp);	    	handled = true;			break;		case	btnDOWN:			if	( FldScrollable(fld_ptr(fldTEXT), winDown) )					FldScrollField(fld_ptr(fldTEXT), 1, winDown);	    	handled = true;			break;		case	btnPGUP:			if ( FldScrollable(fld_ptr(fldTEXT), winUp) ) 				FldScrollField(fld_ptr(fldTEXT), lastDocPageSize, winUp);	    	handled = true;			break;		case	btnPGDN:			if	( FldScrollable(fld_ptr(fldTEXT), winDown) )					FldScrollField(fld_ptr(fldTEXT), lastDocPageSize, winDown);	    	handled = true;			break;		case	btnSAVE:			lastDocPos = getTextPos();			FSVSaveStatus(curFSVName, lastDocPos, lastDocFont);			saveFSV(curFSVName);			FldSetDirty(fld_ptr(fldTEXT), 0);	    	handled = true;			break;			}		break;		       default:        break;    	}    return handled;}Boolean		FSViewFormHandleEvent(EventPtr e){	return FSVFormHandleEventSEG(e);}//// OUTPUT //////////////////////////////////////////////////////////////////////////////**	CALLED FROM BRUN*/int		BRUNHandleEvent(EventPtr e){	int		rv = 0;    switch (e->eType) {	case frmCloseEvent:		if	( brun_status() == BRUN_RUNNING )				brun_stop();		break;    case menuEvent:		switch(e->data.menu.itemID) {		case	mnuRun:			brun_stop();			EvtAddEventToQueue(e);			rv = 1;			break;		case	mnuBreak:			brun_break();			rv = 1;			break;		case	mnuClose:			brun_stop();			EvtAddEventToQueue(e);			rv = 1;			break;		case mnuAbout:			DoAboutForm();	      	break;		case mnuHelpFS:			GPlmAlert(HelpFSStrTID, HelpFSStringID);			break;		case mnuHelpMisc:			GPlmAlert(HelpMiscStrTID, HelpMiscStringID);			break;		case mnuHelpSys:			GPlmAlert(HelpSysStrTID, HelpSysStringID);			break;		case mnuHelp:			GPlmAlert(HelpStrTID, HelpStringID);			break;		case mnuHelpMS:			GPlmAlert(HelpMSStrTID, HelpMSStringID);			break;		case mnuHelpCon:			GPlmAlert(HelpConStrTID, HelpConStringID);			break;		case mnuHelpGraf:			GPlmAlert(HelpGrafStrTID, HelpGrafStringID);			break;			}		break;	default:		break;    	}    return rv;}//Boolean		OutFormHandleEventSEG(EventPtr e) SEC(IDE);Boolean		OutFormHandleEventSEG(EventPtr e){	Boolean		handled = false;    switch (e->eType) {    case frmOpenEvent:		dev_cls();		brun(curFileName);		handled = true;		break;	case frmCloseEvent:		if	( brun_status() == BRUN_RUNNING )				brun_stop();		handled = true;		break;    case menuEvent:		switch(e->data.menu.itemID) {		case	mnuRun:			brun(curFileName);			handled = true;			break;		case	mnuClose:			if	( autoReturnToForm )				FrmGotoForm(autoReturnToForm);			else				FrmGotoForm(MainForm);			handled = true;			break;		case mnuAbout:			DoAboutForm();			handled = true;			break;		case mnuHelpFS:			GPlmAlert(HelpFSStrTID, HelpFSStringID);			handled = true;			break;		case mnuHelpMisc:			GPlmAlert(HelpMiscStrTID, HelpMiscStringID);			handled = true;			break;		case mnuHelpSys:			GPlmAlert(HelpSysStrTID, HelpSysStringID);			handled = true;			break;		case mnuHelp:			GPlmAlert(HelpStrTID, HelpStringID);			handled = true;			break;		case mnuHelpMS:			GPlmAlert(HelpMSStrTID, HelpMSStringID);			handled = true;			break;		case mnuHelpCon:			GPlmAlert(HelpConStrTID, HelpConStringID);			handled = true;			break;		case mnuHelpGraf:			GPlmAlert(HelpGrafStrTID, HelpGrafStringID);			handled = true;			break;			}		break;	default:		break;    	}	return handled;}Boolean		OutFormHandleEvent(EventPtr e){	return	OutFormHandleEventSEG(e);}//// MAIN/SELECT /////////////////////////////////////////////////////////////////////////////static void refreshDocList() SEC(IDE);static void refreshDocList(){	ListPtr	list;	buildDocList();	list = GetListPtr(lstBROWSE);	LstSetListChoices(list, docTable, docCount); 	LstDrawList(list);}static int doFileDetails(char *file) SEC(IDE);static int doFileDetails(char *file){	FormPtr	frmPrev, frmDet;	ListPtr	list;	ControlPtr	popup;	int		hit;	frmPrev = FrmGetActiveForm();	frmDet = FrmInitForm(DetForm);	FrmSetActiveForm(frmDet);	FrmSetTitle(frmDet, file);	list = GetListPtr(lstCat);	LstSetListChoices(list, catList, catCount);	LstSetSelection(list, curCat);	popup = (ControlPtr) FrmGetObjectPtr(frmDet, FrmGetObjectIndex(frmDet, trgCat));	CtlSetLabel(popup, catList[curCat]);	hit = FrmDoDialog(frmDet);	if	( hit == btnOK )	{		// get vals		updateDocCat(file, LstGetSelection(list));		}	if	( frmPrev )		FrmSetActiveForm(frmPrev);	FrmDeleteForm(frmDet);	return ( hit == btnOK );}static int doCatEdit() SEC(IDE);static int doCatEdit(){	FormPtr	frmPrev, frmDet;	ListPtr	list;	int		hit;	frmPrev = FrmGetActiveForm();	frmDet = FrmInitForm(EditCatForm);	FrmSetActiveForm(frmDet);	list = GetListPtr(lstCat);	LstSetListChoices(list, catList, catCount);	LstSetSelection(list, curCat);	hit = FrmDoDialog(frmDet);	if	( hit == btnOK )	{		// get vals		;		}	if	( frmPrev )		FrmSetActiveForm(frmPrev);	FrmDeleteForm(frmDet);	return ( hit == btnOK );}static Boolean MainFormHandleEventSEG(EventPtr e) SEC(IDE);static Boolean MainFormHandleEventSEG(EventPtr e){    Boolean handled = false;    FormPtr frm = NULL;	FormPtr	frmpop = NULL;	ListPtr	list;	char	*fileName;	static int lastFile;	LocalID	LID;	FormActiveStateType	stateP;        switch (e->eType) {    case frmOpenEvent:		frm = FrmGetActiveForm();		FrmDrawForm(frm);		curCat = sbpref.lastCat;		buildDocList();		sbpref.lastDocForm = MainForm;

⌨️ 快捷键说明

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