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

📄 uitextedit.h

📁 嵌入工linux开发的源码
💻 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 + -