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

📄 editin.h

📁 好记星的控件,包括button,list,对文件操作
💻 H
字号:
/***************************************************************************
                                                                          
              Copyright (C) 2002 SHENZHEN MEIJIN CO.LTD                   
                                                                          
 FILE NAME:   EditIn.h                                                    
 MODULE NAME: GUI控件 - 编辑器                                            
 DESCRIPTION: 编辑器内部头文件                                            
                                                                          
**************************************************************************
    DTAE       AUTHOR     VERSION                 REMARKS                 
 =========== ==========  =========  ======================================
 2005.12.31		gaolinhui  v1.00					create
***************************************************************************/


/* 防止被重复引用的预处理 */
#ifndef __EDITIN_H__
#define __EDITIN_H__

/*-----内部编辑消息定义,由系统统一规划------*/
#ifndef CM_EDITOR
#define CM_EDITOR CM_KNLEDT_BASE
#endif


//支持笔点操作
//定义光标ID时的掩码
#define EDIT_CURID_MASK	0X7000				/*编辑器光标ID号MASK*/
#define EDIT_TIMER_ID(pEdit)	((UINT16)(EDIT_CURID_MASK | ((UINT32)pEdit & 0XFFF)))
/*定义光标闪动的时间间隔*/
#define EDIT_CURTMR_SET			0X200


//下面的宏可能要作一些修改

/*-------wState--------*/
#define SF_EDITOR_NONE				0X0000
#define SF_EDITOR_INIT				0x0001	/*编辑器已初始化*/
#define SF_EDITOR_MODIFIED          0x0002  /*数据被更改状态标志*/

#define	OF_EDITOR_MULTILINE			0X0010	/*多行编辑器*/
#define	OF_EDITOR_READONLY			0X0020	/*只读状态*/
#define	OF_EDITOR_PASSWORD			0X0040	/*密码显示状态*/
#define	OF_EDITOR_INSERSECAP		0X0080	/*标题反显状态*/
#define	OF_EDITOR_LINETHREAD		0X0100	/*显示分割线*/
#define OF_EDITOR_NOBACKGRND		0X0200	/*不画背景*/
#define OF_EDITOR_NOMARK			0X0400	/*没有mark功能*/

#define SF_EDITOR_HAVEKBD           0x1000  /*当前编辑控件中已经设置了输入法键盘*/
#define SF_EDITOR_CURSHOW			0x2000	/* 当前编辑器光标在显示*/


/*---编辑控件内部标志定义----*/
#define EDITOR_BUFFERFULL       0X01
#define EDITOR_DISPFULL         0X02
#define EDITOR_DATACHANGE       0X04
#define EDITOR_BLOCKCANCEL      0X08

/*内部消息定义*/
#define CM_EDITINNER_LINECHANGE     (CM_EDITOR+20) /*当编辑数据的总行数或开始显示行号改变时应该发送的消息*/
#define CM_EDITINNER_ROWCHANGED     (CM_EDITOR+21) /*当编辑数据的总列数或开始显示列号改变时应该发送的消息*/
#define CM_EDITINNER_KEY_DEL        (CM_EDITOR+23) /*删除键*/
#define CM_EDITINNER_KEY_BKSPACE    (CM_EDITOR+24) /*退格键*/
#define CM_EDITINNER_CURSORBLINK    (CM_EDITOR+25) /*闪烁光标*/
#define CM_EDITINNER_MEMLENCHANGED  (CM_EDITOR+26) /*内存数据已改变*/
#define CM_EDITINNER_FIRSTINTO      (CM_EDITOR+27) /*第一次进入编辑器*/



/* 函数声明 */
/*----------EditLib.c 中的内部接口函数------------*/
//根据显示位置得到内存位置
UINT	__EditDspPosToMem(UINT16  wFontID, UINT8 *pStr, UINT *pDspLen);
//由显示长度得到内存长度(遇回车符不返回)
UINT	__EditDspLenToMem(UINT16 wFontID, UINT8 *pStr, UINT *pDspLen);
//由内存长度得到显示长度(遇回车符不返回) 
UINT	__EditMemLenToDsp(UINT16 wFontID, UINT8 *pStr, UINT *pMemLen);
//由内存位置到显示位置,并调整内存位置(遇回车符则返回)
UINT	__EditMemPosToDsp(UINT16 wFontID, UINT8 *pStr, UINT *pMemLen);
//得到ASCII字符的显示长度
UINT	__EditGetAsciiFontWidth(UINT16 wFontID);
//得到指定高度能显示字符串的行数 
UINT	__EditGetRectLineNum(UINT16 wFontID,UINT uHeight, UINT uRowSpace);
//得到指定宽度能显示的ASCII字符个数 
UINT	__EditGetRectRowNum(UINT16 wFontID, UINT uWidth);
//得到一个字符的显示长度或内存长度
VOID	__EditGetCharLength(UINT16 wFontID, UINT8 *pStr, UINT *pMemLen, UINT *pDspLen);
//根据内存位置得到前一字符的内存长度
UINT	__EditGetPreCharMemLen(UINT16 wFontID, UINT8 *pData, UINT uMem);
//根据显示位置得到前一字符的显示长度
UINT	__EditGetPreCharDspLen(UINT16 wFontID, UINT8 *pStr, UINT uStartPos);
//计算标题的显示长度(资源或字符串)  
UINT	__EditGetCaptionLen(UINT8 *pCaption);
//得到字符串中的字符长度(显示长度或内存长度)
UINT	__EditGetStrLength( UINT16 wFontID, UINT8 *pData, BOOL bRetDspLen );
//得到字符串所需的显示行数  
UINT	__EditGetStrLineNum(UINT16 wFontID, UINT uWidth, UINT8 *pCaption, UINT8 *pData, UINT uIndent, BOOL bScrnStartPtr);
//重新计算编辑器buffer中开始显示的内存位置
VOID	__EditGetScrnStart(MEdit* hEditWin, UINT uOldStart);
//判断合法数据的长度
BOOL	__EditStrValidLenCheck(UINT16 wFontID, UINT uAllowChar, UINT8 *pData, UINT uDataLen, UINT *pDspLen, UINT *pMemLen);
//根据内存位置低到光标位置
VOID	__EditMemColToCursor(MEdit *hEditWin,UINT uMemCol, INT *pCurLine, INT *pCurCol, BOOL bChangeCursor,BOOL bScrnStart);
//根据光标位置得到内存位置
UINT	__EditCursorToMemCol(MEdit *hEditWin, INT *pCurLine, INT *pCurCol, UINT uDspCols);
//返回当前块首和块尾的位置
BOOL	__EditGetSel(MEdit *hEditor, UINT *pStartChar, UINT *pEndChar);
//取消块
void	__EditFlushSelBlock(MEdit *hEditWin);
//更新行总数和屏幕其实行的内存位置
VOID	__EditLineRowChange(MEdit *hEditWin,UINT uOldDspLen,BOOL bScrnStart,BOOL bReDraw);
//编辑器增加字符(字符串)操作
VOID	__EditAddStringProc(MEdit *hEditWin, UINT8* pData, UINT uDataLen);
//光标闪动显示
VOID	__EditInvertCursor(MEdit* pEdit);
//隐藏光标
VOID	__EditCursorHide(MEdit* pEdit);
//显示打开光标显示
void	__EditShowCursor(MEdit *hEdWin);

/***************************内部接口函数*****************************/
/*-----------EditDsp.c 中的内部接口函数-----------*/
UINT	__EditDispLimitLenStr(MEdit *pEdit, UINT x, UINT y, UINT8 *pStr, UINT uMaxLen, BOOL bIsRev);
//显示BLOCK
void	__EditDispBlockStr(MEdit *pEdit,UINT uHead, UINT uTail, BOOL bIsRev);
void	__EditDispLineSpace(MEdit *pEdit, UINT uWidth, UINT uHeight, UINT16 wStateOption, UINT uSpace);
UINT	__EditDispOneLineText(MEdit* pEdit, UINT8 *pData, UINT uMem, UINT x0, UINT y0, UINT uWidth, UINT uBlockHead, UINT uBlockTail);
void	__EditDispScrText(MEdit* pEdit, UINT8 *pCaption, UINT8 *pData, UINT8 *pScrnStart, UINT y0, UINT uStartLine, UINT uLines, UINT uCols, UINT uSpace, UINT uIndent, UINT uBlockHead, UINT uBlockTail);


/*-----------Edit.c 中的内部接口函数--------------*/
//设置编辑器得默认参数
BOOL	__EditSetDefaultParam(MEdit* pEdit);


/*----------EdWinProc.c 中的内部接口函数------------*/
//处理按键消息
BOOL __EditKeyProcess(MEdit* pEdit, UINT uKey, BOOL bCanEdit);
INT  __EditWinProcKeyMark(MEdit *hEditWin, UINT uKey,BOOL bCanEdit);
//删除字符或块处理
VOID __EditDeleteProc(MEdit* hEditWin, BOOL bSendDataChange );

/*----------EditPen.c 中的内部接口函数------------*/
#ifdef EDIT_SUPPORT_PEN
//笔点的消息处理函数
INT	 __EditWinProcPen(MEdit* hEditWin, UINT uEvent,UINT uParam);
#endif


#endif  /* #ifndef __EDITIN_H__ */

⌨️ 快捷键说明

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