📄 uitextedit.h
字号:
/*********************************************************
FILE: uiTextEdit.h (/rtos/kernel/usrlib/pda_win/include/)
Basic Window Widget : TextEdit
Copyright (c) 2001, Reality Technology CO. LTD.
AUTHOR: Cangers <gh_chan@sina.com>
HISTORY: >2001-10-11
**********************************************************/
#ifndef _GUI_TEXTEDIT_H_
#define _GUI_TEXTEDIT_H_
#include <uicontrol.h>
#include <uiUtility.h>
/**************************************************************
CONSTANT: definded in txtfield.h
**************************************************************/
//style
#define TEXTEDIT_NOBORDER 0x01
#define TEXTEDIT_BORDER_NONE TEXTEDIT_NOBORDER
#define TEXTEDIT_BORDER 0x00
#define TEXTEDIT_SINGLE_LINE 0x02
#define TEXTEDIT_LINE_SINGLE TEXTEDIT_SINGLE_LINE
#define TEXTEDIT_MULT_LINE 0x00
#define TEXTEDIT_LINE_MULT TEXTEDIT_MULT_LINE
#define TEXTEDIT_USER_CHAR 0x04 //用于输入制定的字符集合
#define TEXTEDIT_CHAR_USER TEXTEDIT_USER_CHAR
#define TEXTEDIT_CHAR_ALL 0x00
#define TEXTEDIT_ALGIN_LEFT 0x00
#define TEXTEDIT_ALGIN_CENTER 0x08
#define TEXTEDIT_ALGIN_RIGHT 0x10
#define TEXTEDIT_WRAP_WORD 0x00
#define TEXTEDIT_WRAP_LINE 0x20
#define TEXTEDIT_SCROLL 0x00
#define TEXTEDIT_SCROLL_NONE 0x40
#define TEXTEDIT_DYNAMIC_NONE 0x00
#define TEXTEDIT_DYNAMIC 0x80
#define TEXTEDIT_UNDERLINE_NONE 0x00
#define TEXTEDIT_UNDERLINE_SOLID 0x100
#define TEXTEDIT_UNDERLINE_HATCH 0x200
#define TEXTEDIT_READONLY 0x400
#define TEXTEDIT_PASSWORD 0x800
//PROPERTY val
enum { ALIGNMENT_LEFT = 0, ALIGNMENT_CENTER, ALIGNMENT_RIGHT };//TEXT_ALIGNMENT
enum { UNDERLINE_NONE = 0, UNDERLINE_HATCH, UNDERLINE_SOLID }; //UNDERLINE_TYPE
// common for single/multi-line textedit
enum{ TEXT_LENGTH = 0, MAX_LENGTH, CARET_INDEX, LINE_HEIGHT,READ_ONLY,
UNDERLINE_TYPE,CHAR_GAP, UNDERLINE_COLOR,LEFT_MARGIN,RIGHT_MARGIN,
TOP_MARGIN,BOTTOM_MARGIN };
// for single-line textedit
enum{ TEXT_ALIGNMENT = 15,PASSWORD };
// for multi-line textedit
enum{ LINE_COUNT = 20, WORD_WRAP,DYNAMIC_SIZE,TEXT_SCROLL};
//CURSOR
#define CURSOR_WIDTH 2
#define GET_CURSOR_HEIGHT(hTextEdit) (((PTTEXTEDIT)hTextEdit)->m_LineHeight-2)
//#define _CGH_DEBUG
/**************************************************************
DATA STRUCTURE
**************************************************************/
#define DEFAULT_LINE_HEIGHT 13
typedef struct tagTextLineInfo
{
WORD wLineIndex; //line index
WORD wCharCount; //total char num
WORD wPs_Txt; //point to start char pos of each line
}TTEXTLINEINFO;
typedef struct tagTextEdit
{
TGuiControl base; // defined in control.h
TTEXTLINEINFO *m_pLineInfo;
HNDL m_VScroll; // scrollbar
WORD m_Margin_Left; // X-offset of visible area
WORD m_Margin_Right; // Y-offset of visible area
WORD m_Margin_Top; // X-offset of visible area
WORD m_Margin_Bottom; // Y-offset of visible area
WORD m_LineHeight;
WORD m_CharGap;
short m_MarkBegin, m_MarkEnd; // mark flags in m_Text for select
short m_TxtLength; // real text length
short m_MaxLength; // max input length limit
short m_CursorPos; // cursor position in m_Text
WORD m_CursorLineNum; //current line num that cursor just in
WORD m_TopLineNum; // current display line position in visible area
WORD m_LineCount; // line count
WORD m_init_LineCount; // line init count
WORD m_buff_LineCount;
WORD m_init_LineSX;
WORD m_MaxWidth_Line; // max pixel width count of visible line
short m_LineColor; // underline color
short m_TextColor; // underline color
WORD m_DynamicMax; // dynamicly LINE COUNT
char *m_pText; // text buffer pointer .
BYTE m_bReadOnly; // Enable read only
BYTE m_bRebuid; //
BYTE m_UnderlineStyle; // underline type
BYTE m_bWordWrap; // auto wrap enable: default enable
BYTE m_bScrollEnable; // enable text scrolling
BYTE m_bScrollActive; // if scroll bar active
char *m_pUserChar;
char m_CaretWidth;
// for single-line only
BYTE m_Alignment; //text alignment
BYTE m_bPassword; //if be password
char m_EchoChar; // for password char
}TTEXTEDIT,*PTTEXTEDIT;
typedef STATUS (*POPUP_FUNC_TYPE)(char *lpszText, int nIndex);
/***************************<<PUBLIC FUN>>********************************/
/*
*********************************************************************************************************
* return 0 if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(HNDL) guiTextEdit_Create( WORD left, WORD top, WORD right, WORD bottom , short maxLen,WORD style) ;
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
#define guiTextEdit_Delete guiControl_Delete
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
#define guiTextEdit_Show guiControl_Show
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_SetText( HNDL hTextEdit, const char *pszText) ;
/*
*********************************************************************************************************
* return 0 if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(char*) guiTextEdit_GetText( HNDL hTextEdit,char *pBuff,WORD wTextLen);
DLL_EXP(char*) guiTextEdit_GetAllText( HNDL hTextEdit);
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
//DLL_EXP(STATUS) guiTextEdit_Clear( HNDL hTextEdit ) ;
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_AddText( HNDL hTextEdit, const BYTE *pszText ) ;
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_InsertText( HNDL hTextEdit, WORD wPos, const BYTE *pszText );
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_Select( HNDL hTextEdit, WORD start, WORD end );
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_DeSelect( HNDL hTextEdit );
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend ,else return the selected string length.
*********************************************************************************************************
*/
DLL_EXP(int) guiTextEdit_GetSelectLen( HNDL hTextEdit );
/*
*********************************************************************************************************
* return 0 if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(char*) guiTextEdit_GetSelectText( HNDL hTextEdit);
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_DeleteSelectText( HNDL hTextEdit);
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_SetProperty( HNDL hTextEdit, BYTE type, short value );
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend ,else return the property value
*********************************************************************************************************
*/
DLL_EXP(short) guiTextEdit_GetProperty( HNDL hTextEdit, BYTE type);
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiText_Set_USERCHAR(HNDL hTextEdit,char *pUserChar);
/*
*********************************************************************************************************
* return TRUE or FALSE !!
*********************************************************************************************************
*/
//DLL_EXP(BOOL) _guiText_Tell_USERCHAR(HNDL hTextEdit,char cChar);
/*
*********************************************************************************************************
* return 0 if some wrong happend,or no TextEdit get focus !!
*********************************************************************************************************
*/
DLL_EXP(HNDL) guiTextEdit_QueryFocus( void ) ;
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_GetFocus( HNDL hTextEdit ) ;
/*
*********************************************************************************************************
* return STATUS_ERR if some wrong happend !!
*********************************************************************************************************
*/
DLL_EXP(STATUS) guiTextEdit_RegPopupFunc( POPUP_FUNC_TYPE *Ptr );
DLL_EXP(STATUS) guiTextEdit_UnRegPopupFunc( void );
DLL_EXP(STATUS) guiTextEdit_LostFocus( void ) ;
DLL_EXP(STATUS) guiTextEdit_CutText( void ) ;
DLL_EXP(STATUS) guiTextEdit_CopyText( void ) ;
DLL_EXP(STATUS) guiTextEdit_PasteText( void ) ;
#endif //_GUI_TEXTEDIT_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -